permissions.rb 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470
  1. # Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
  2. Permission.create_if_not_exists(
  3. name: 'admin',
  4. note: __('Admin Interface'),
  5. preferences: {},
  6. )
  7. Permission.create_if_not_exists(
  8. name: 'admin.user',
  9. note: __('Manage %s'),
  10. preferences: {
  11. translations: [__('Users')]
  12. },
  13. )
  14. Permission.create_if_not_exists(
  15. name: 'admin.group',
  16. note: __('Manage %s'),
  17. preferences: {
  18. translations: [__('Groups')]
  19. },
  20. )
  21. Permission.create_if_not_exists(
  22. name: 'admin.role',
  23. note: __('Manage %s'),
  24. preferences: {
  25. translations: [__('Roles')]
  26. },
  27. )
  28. Permission.create_if_not_exists(
  29. name: 'admin.organization',
  30. note: __('Manage %s'),
  31. preferences: {
  32. translations: [__('Organizations')]
  33. },
  34. )
  35. Permission.create_if_not_exists(
  36. name: 'admin.overview',
  37. note: __('Manage %s'),
  38. preferences: {
  39. translations: [__('Overviews')]
  40. },
  41. )
  42. Permission.create_if_not_exists(
  43. name: 'admin.text_module',
  44. note: __('Manage %s'),
  45. preferences: {
  46. translations: [__('Text Modules')]
  47. },
  48. )
  49. Permission.create_if_not_exists(
  50. name: 'admin.time_accounting',
  51. note: __('Manage %s'),
  52. preferences: {
  53. translations: [__('Time Accounting')]
  54. },
  55. )
  56. Permission.create_if_not_exists(
  57. name: 'admin.macro',
  58. note: __('Manage %s'),
  59. preferences: {
  60. translations: [__('Macros')]
  61. },
  62. )
  63. Permission.create_if_not_exists(
  64. name: 'admin.tag',
  65. note: __('Manage %s'),
  66. preferences: {
  67. translations: [__('Tags')]
  68. },
  69. )
  70. Permission.create_if_not_exists(
  71. name: 'admin.calendar',
  72. note: __('Manage %s'),
  73. preferences: {
  74. translations: [__('Calendar')]
  75. },
  76. )
  77. Permission.create_if_not_exists(
  78. name: 'admin.sla',
  79. note: __('Manage %s'),
  80. preferences: {
  81. translations: [__('SLA')]
  82. },
  83. )
  84. Permission.create_if_not_exists(
  85. name: 'admin.trigger',
  86. note: __('Manage %s'),
  87. preferences: {
  88. translations: [__('Triggers')]
  89. },
  90. )
  91. Permission.create_if_not_exists(
  92. name: 'admin.scheduler',
  93. note: __('Manage %s'),
  94. preferences: {
  95. translations: [__('Scheduler')]
  96. },
  97. )
  98. Permission.create_if_not_exists(
  99. name: 'admin.report_profile',
  100. note: __('Manage %s'),
  101. preferences: {
  102. translations: [__('Report Profiles')]
  103. },
  104. )
  105. Permission.create_if_not_exists(
  106. name: 'admin.channel_web',
  107. note: __('Manage %s'),
  108. preferences: {
  109. translations: [__('Channel - Web')]
  110. },
  111. )
  112. Permission.create_if_not_exists(
  113. name: 'admin.channel_formular',
  114. note: __('Manage %s'),
  115. preferences: {
  116. translations: [__('Channel - Form')]
  117. },
  118. )
  119. Permission.create_if_not_exists(
  120. name: 'admin.channel_email',
  121. note: __('Manage %s'),
  122. preferences: {
  123. translations: [__('Channel - Email')]
  124. },
  125. )
  126. Permission.create_if_not_exists(
  127. name: 'admin.channel_twitter',
  128. note: __('Manage %s'),
  129. preferences: {
  130. translations: [__('Channel - Twitter')]
  131. },
  132. )
  133. Permission.create_if_not_exists(
  134. name: 'admin.channel_facebook',
  135. note: __('Manage %s'),
  136. preferences: {
  137. translations: [__('Channel - Facebook')]
  138. },
  139. )
  140. Permission.create_if_not_exists(
  141. name: 'admin.channel_telegram',
  142. note: __('Manage %s'),
  143. preferences: {
  144. translations: [__('Channel - Telegram')]
  145. },
  146. )
  147. Permission.create_if_not_exists(
  148. name: 'admin.channel_google',
  149. note: __('Manage %s'),
  150. preferences: {
  151. translations: [__('Channel - Google')]
  152. },
  153. )
  154. Permission.create_if_not_exists(
  155. name: 'admin.channel_microsoft365',
  156. note: __('Manage %s'),
  157. preferences: {
  158. translations: [__('Channel - Microsoft 365')]
  159. },
  160. )
  161. Permission.create_if_not_exists(
  162. name: 'admin.channel_sms',
  163. note: __('Manage %s'),
  164. preferences: {
  165. translations: [__('Channel - SMS')]
  166. },
  167. )
  168. Permission.create_if_not_exists(
  169. name: 'admin.channel_chat',
  170. note: __('Manage %s'),
  171. preferences: {
  172. translations: [__('Channel - Chat')]
  173. },
  174. )
  175. Permission.create_if_not_exists(
  176. name: 'admin.branding',
  177. note: __('Manage %s'),
  178. preferences: {
  179. translations: [__('Branding')]
  180. },
  181. )
  182. Permission.create_if_not_exists(
  183. name: 'admin.setting_system',
  184. note: __('Manage %s Settings'),
  185. preferences: {
  186. translations: [__('System')]
  187. },
  188. )
  189. Permission.create_if_not_exists(
  190. name: 'admin.security',
  191. note: __('Manage %s Settings'),
  192. preferences: {
  193. translations: [__('Security')]
  194. },
  195. )
  196. Permission.create_if_not_exists(
  197. name: 'admin.ticket',
  198. note: __('Manage %s Settings'),
  199. preferences: {
  200. translations: [__('Ticket')]
  201. },
  202. )
  203. Permission.create_if_not_exists(
  204. name: 'admin.package',
  205. note: __('Manage %s'),
  206. preferences: {
  207. translations: [__('Packages')]
  208. },
  209. )
  210. Permission.create_if_not_exists(
  211. name: 'admin.integration',
  212. note: __('Manage %s'),
  213. preferences: {
  214. translations: [__('Integrations')]
  215. },
  216. )
  217. Permission.create_if_not_exists(
  218. name: 'admin.api',
  219. note: __('Manage %s'),
  220. preferences: {
  221. translations: [__('API')]
  222. },
  223. )
  224. Permission.create_if_not_exists(
  225. name: 'admin.object',
  226. note: __('Manage %s'),
  227. preferences: {
  228. translations: [__('Objects')]
  229. },
  230. )
  231. Permission.create_if_not_exists(
  232. name: 'admin.translation',
  233. note: __('Manage %s'),
  234. preferences: {
  235. translations: [__('Translations')]
  236. },
  237. )
  238. Permission.create_if_not_exists(
  239. name: 'admin.monitoring',
  240. note: __('Manage %s'),
  241. preferences: {
  242. translations: [__('Monitoring')]
  243. },
  244. )
  245. Permission.create_if_not_exists(
  246. name: 'admin.data_privacy',
  247. note: __('Manage %s'),
  248. preferences: {
  249. translations: [__('Data Privacy')]
  250. },
  251. )
  252. Permission.create_if_not_exists(
  253. name: 'admin.maintenance',
  254. note: __('Manage %s'),
  255. preferences: {
  256. translations: [__('Maintenance')]
  257. },
  258. )
  259. Permission.create_if_not_exists(
  260. name: 'admin.session',
  261. note: __('Manage %s'),
  262. preferences: {
  263. translations: [__('Sessions')]
  264. },
  265. )
  266. Permission.create_if_not_exists(
  267. name: 'admin.webhook',
  268. note: __('Manage %s'),
  269. preferences: {
  270. translations: [__('Webhooks')]
  271. },
  272. )
  273. Permission.create_if_not_exists(
  274. name: 'admin.core_workflow',
  275. note: __('Manage %s'),
  276. preferences: {
  277. translations: [__('Core Workflow')]
  278. },
  279. )
  280. Permission.create_if_not_exists(
  281. name: 'user_preferences',
  282. note: __('User Preferences'),
  283. preferences: {},
  284. allow_signup: true,
  285. )
  286. Permission.create_if_not_exists(
  287. name: 'user_preferences.password',
  288. note: __('Change %s'),
  289. preferences: {
  290. translations: [__('Password')]
  291. },
  292. allow_signup: true,
  293. )
  294. Permission.create_if_not_exists(
  295. name: 'user_preferences.notifications',
  296. note: __('Manage %s'),
  297. preferences: {
  298. translations: [__('Notifications')],
  299. required: ['ticket.agent'],
  300. },
  301. allow_signup: true,
  302. )
  303. Permission.create_if_not_exists(
  304. name: 'user_preferences.access_token',
  305. note: __('Manage %s'),
  306. preferences: {
  307. translations: [__('Token Access')]
  308. },
  309. allow_signup: true,
  310. )
  311. Permission.create_if_not_exists(
  312. name: 'user_preferences.language',
  313. note: __('Change %s'),
  314. preferences: {
  315. translations: [__('Language')]
  316. },
  317. allow_signup: true,
  318. )
  319. Permission.create_if_not_exists(
  320. name: 'user_preferences.linked_accounts',
  321. note: __('Manage %s'),
  322. preferences: {
  323. translations: [__('Linked Accounts')]
  324. },
  325. allow_signup: true,
  326. )
  327. Permission.create_if_not_exists(
  328. name: 'user_preferences.device',
  329. note: __('Manage %s'),
  330. preferences: {
  331. translations: [__('Devices')]
  332. },
  333. allow_signup: true,
  334. )
  335. Permission.create_if_not_exists(
  336. name: 'user_preferences.avatar',
  337. note: __('Manage %s'),
  338. preferences: {
  339. translations: [__('Avatar')]
  340. },
  341. allow_signup: true,
  342. )
  343. Permission.create_if_not_exists(
  344. name: 'user_preferences.calendar',
  345. note: __('Access to %s'),
  346. preferences: {
  347. translations: [__('Calendars')],
  348. required: ['ticket.agent'],
  349. },
  350. allow_signup: true,
  351. )
  352. Permission.create_if_not_exists(
  353. name: 'user_preferences.out_of_office',
  354. note: __('Change %s'),
  355. preferences: {
  356. translations: [__('Out of Office')],
  357. required: ['ticket.agent'],
  358. },
  359. allow_signup: true,
  360. )
  361. Permission.create_if_not_exists(
  362. name: 'report',
  363. note: __('Report Interface'),
  364. preferences: {},
  365. )
  366. Permission.create_if_not_exists(
  367. name: 'ticket',
  368. note: __('Ticket Interface'),
  369. preferences: {
  370. disabled: true
  371. },
  372. )
  373. Permission.create_if_not_exists(
  374. name: 'ticket.agent',
  375. note: __('Access to Agent Tickets based on Group Access'),
  376. preferences: {
  377. plugin: ['groups']
  378. },
  379. )
  380. Permission.create_if_not_exists(
  381. name: 'ticket.customer',
  382. note: __('Access to Customer Tickets based on current_user and organization'),
  383. preferences: {},
  384. allow_signup: true,
  385. )
  386. Permission.create_if_not_exists(
  387. name: 'chat',
  388. note: __('Access to %s'),
  389. preferences: {
  390. translations: [__('Chat')],
  391. disabled: true,
  392. },
  393. )
  394. Permission.create_if_not_exists(
  395. name: 'chat.agent',
  396. note: __('Access to %s'),
  397. preferences: {
  398. translations: [__('Chat')],
  399. },
  400. )
  401. Permission.create_if_not_exists(
  402. name: 'cti',
  403. note: __('CTI'),
  404. preferences: {
  405. disabled: true
  406. },
  407. )
  408. Permission.create_if_not_exists(
  409. name: 'cti.agent',
  410. note: __('Access to %s'),
  411. preferences: {
  412. translations: [__('CTI')],
  413. },
  414. )
  415. Permission.create_if_not_exists(
  416. name: 'admin.knowledge_base',
  417. note: __('Create and set up %s'),
  418. preferences: {
  419. translations: [__('Knowledge Base')]
  420. }
  421. )
  422. Permission.create_if_not_exists(
  423. name: 'knowledge_base',
  424. note: __('Manage %s'),
  425. preferences: {
  426. translations: [__('Knowledge Base')],
  427. disabled: true,
  428. }
  429. )
  430. Permission.create_if_not_exists(
  431. name: 'knowledge_base.editor',
  432. note: __('Manage %s'),
  433. preferences: {
  434. translations: [__('Knowledge Base Editor')]
  435. }
  436. )
  437. Permission.create_if_not_exists(
  438. name: 'knowledge_base.reader',
  439. note: __('Manage %s'),
  440. preferences: {
  441. translations: [__('Knowledge Base Reader')]
  442. },
  443. allow_signup: true,
  444. )
  445. admin = Role.find_by(name: 'Admin')
  446. admin.permission_grant('user_preferences')
  447. admin.permission_grant('admin')
  448. admin.permission_grant('report')
  449. admin.permission_grant('knowledge_base.editor')
  450. agent = Role.find_by(name: 'Agent')
  451. agent.permission_grant('user_preferences')
  452. agent.permission_grant('ticket.agent')
  453. agent.permission_grant('chat.agent')
  454. agent.permission_grant('cti.agent')
  455. agent.permission_grant('knowledge_base.reader')
  456. customer = Role.find_by(name: 'Customer')
  457. customer.permission_grant('user_preferences.password')
  458. customer.permission_grant('user_preferences.language')
  459. customer.permission_grant('user_preferences.linked_accounts')
  460. customer.permission_grant('user_preferences.avatar')
  461. customer.permission_grant('ticket.customer')