permissions.rb 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519
  1. # Copyright (C) 2012-2024 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_whatsapp',
  149. note: __('Manage %s'),
  150. preferences: {
  151. translations: [__('Channel - WhatsApp')]
  152. },
  153. )
  154. Permission.create_if_not_exists(
  155. name: 'admin.channel_google',
  156. note: __('Manage %s'),
  157. preferences: {
  158. translations: [__('Channel - Google')]
  159. },
  160. )
  161. Permission.create_if_not_exists(
  162. name: 'admin.channel_microsoft365',
  163. note: __('Manage %s'),
  164. preferences: {
  165. translations: [__('Channel - Microsoft 365')]
  166. },
  167. )
  168. Permission.create_if_not_exists(
  169. name: 'admin.channel_sms',
  170. note: __('Manage %s'),
  171. preferences: {
  172. translations: [__('Channel - SMS')]
  173. },
  174. )
  175. Permission.create_if_not_exists(
  176. name: 'admin.channel_chat',
  177. note: __('Manage %s'),
  178. preferences: {
  179. translations: [__('Channel - Chat')]
  180. },
  181. )
  182. Permission.create_if_not_exists(
  183. name: 'admin.branding',
  184. note: __('Manage %s'),
  185. preferences: {
  186. translations: [__('Branding')]
  187. },
  188. )
  189. Permission.create_if_not_exists(
  190. name: 'admin.setting_system',
  191. note: __('Manage %s Settings'),
  192. preferences: {
  193. translations: [__('System')]
  194. },
  195. )
  196. Permission.create_if_not_exists(
  197. name: 'admin.security',
  198. note: __('Manage %s Settings'),
  199. preferences: {
  200. translations: [__('Security')]
  201. },
  202. )
  203. Permission.create_if_not_exists(
  204. name: 'admin.ticket',
  205. note: __('Manage %s Settings'),
  206. preferences: {
  207. translations: [__('Ticket')]
  208. },
  209. )
  210. Permission.create_if_not_exists(
  211. name: 'admin.ticket_state',
  212. note: __('Manage %s Settings'),
  213. preferences: {
  214. translations: [__('Ticket States')]
  215. },
  216. )
  217. Permission.create_if_not_exists(
  218. name: 'admin.ticket_priority',
  219. note: __('Manage %s Settings'),
  220. preferences: {
  221. translations: [__('Ticket Priorities')]
  222. },
  223. )
  224. Permission.create_if_not_exists(
  225. name: 'admin.package',
  226. note: __('Manage %s'),
  227. preferences: {
  228. translations: [__('Packages')]
  229. },
  230. )
  231. Permission.create_if_not_exists(
  232. name: 'admin.integration',
  233. note: __('Manage %s'),
  234. preferences: {
  235. translations: [__('Integrations')]
  236. },
  237. )
  238. Permission.create_if_not_exists(
  239. name: 'admin.api',
  240. note: __('Manage %s'),
  241. preferences: {
  242. translations: [__('API')]
  243. },
  244. )
  245. Permission.create_if_not_exists(
  246. name: 'admin.object',
  247. note: __('Manage %s'),
  248. preferences: {
  249. translations: [__('Objects')]
  250. },
  251. )
  252. Permission.create_if_not_exists(
  253. name: 'admin.template',
  254. note: __('Manage %s'),
  255. preferences: {
  256. translations: [__('Templates')]
  257. },
  258. )
  259. Permission.create_if_not_exists(
  260. name: 'admin.translation',
  261. note: __('Manage %s'),
  262. preferences: {
  263. translations: [__('Translations')]
  264. },
  265. )
  266. Permission.create_if_not_exists(
  267. name: 'admin.monitoring',
  268. note: __('Manage %s'),
  269. preferences: {
  270. translations: [__('Monitoring')]
  271. },
  272. )
  273. Permission.create_if_not_exists(
  274. name: 'admin.data_privacy',
  275. note: __('Manage %s'),
  276. preferences: {
  277. translations: [__('Data Privacy')]
  278. },
  279. )
  280. Permission.create_if_not_exists(
  281. name: 'admin.maintenance',
  282. note: __('Manage %s'),
  283. preferences: {
  284. translations: [__('Maintenance')]
  285. },
  286. )
  287. Permission.create_if_not_exists(
  288. name: 'admin.session',
  289. note: __('Manage %s'),
  290. preferences: {
  291. translations: [__('Sessions')]
  292. },
  293. )
  294. Permission.create_if_not_exists(
  295. name: 'admin.webhook',
  296. note: __('Manage %s'),
  297. preferences: {
  298. translations: [__('Webhooks')]
  299. },
  300. )
  301. Permission.create_if_not_exists(
  302. name: 'admin.core_workflow',
  303. note: __('Manage %s'),
  304. preferences: {
  305. translations: [__('Core Workflow')]
  306. },
  307. )
  308. Permission.create_if_not_exists(
  309. name: 'admin.public_links',
  310. note: __('Manage %s'),
  311. preferences: {
  312. translations: [__('Public Links')]
  313. },
  314. )
  315. Permission.create_if_not_exists(
  316. name: 'user_preferences',
  317. note: __('User Preferences'),
  318. preferences: {},
  319. allow_signup: true,
  320. )
  321. Permission.create_if_not_exists(
  322. name: 'user_preferences.password',
  323. note: __('Change %s'),
  324. preferences: {
  325. translations: [__('Password')]
  326. },
  327. allow_signup: true,
  328. )
  329. Permission.create_if_not_exists(
  330. name: 'user_preferences.notifications',
  331. note: __('Manage %s'),
  332. preferences: {
  333. translations: [__('Notifications')],
  334. required: ['ticket.agent'],
  335. },
  336. allow_signup: true,
  337. )
  338. Permission.create_if_not_exists(
  339. name: 'user_preferences.access_token',
  340. note: __('Manage %s'),
  341. preferences: {
  342. translations: [__('Token Access')]
  343. },
  344. allow_signup: true,
  345. )
  346. Permission.create_if_not_exists(
  347. name: 'user_preferences.language',
  348. note: __('Change %s'),
  349. preferences: {
  350. translations: [__('Language')]
  351. },
  352. allow_signup: true,
  353. )
  354. Permission.create_if_not_exists(
  355. name: 'user_preferences.linked_accounts',
  356. note: __('Manage %s'),
  357. preferences: {
  358. translations: [__('Linked Accounts')]
  359. },
  360. allow_signup: true,
  361. )
  362. Permission.create_if_not_exists(
  363. name: 'user_preferences.device',
  364. note: __('Manage %s'),
  365. preferences: {
  366. translations: [__('Devices')]
  367. },
  368. allow_signup: true,
  369. )
  370. Permission.create_if_not_exists(
  371. name: 'user_preferences.avatar',
  372. note: __('Manage %s'),
  373. preferences: {
  374. translations: [__('Avatar')]
  375. },
  376. allow_signup: true,
  377. )
  378. Permission.create_if_not_exists(
  379. name: 'user_preferences.calendar',
  380. note: __('Access to %s'),
  381. preferences: {
  382. translations: [__('Calendars')],
  383. required: ['ticket.agent'],
  384. },
  385. allow_signup: true,
  386. )
  387. Permission.create_if_not_exists(
  388. name: 'user_preferences.out_of_office',
  389. note: __('Change %s'),
  390. preferences: {
  391. translations: [__('Out of Office')],
  392. required: ['ticket.agent'],
  393. },
  394. allow_signup: true,
  395. )
  396. Permission.create_if_not_exists(
  397. name: 'user_preferences.overview_sorting',
  398. note: __('Change %s'),
  399. preferences: {
  400. translations: [__('Order of Overviews')],
  401. required: ['ticket.agent'],
  402. },
  403. allow_signup: true,
  404. )
  405. Permission.create_if_not_exists(
  406. name: 'user_preferences.appearance',
  407. note: __('Manage %s'),
  408. preferences: {
  409. translations: [__('Appearance')]
  410. },
  411. allow_signup: true,
  412. )
  413. Permission.create_if_not_exists(
  414. name: 'report',
  415. note: __('Report Interface'),
  416. preferences: {},
  417. )
  418. Permission.create_if_not_exists(
  419. name: 'ticket',
  420. note: __('Ticket Interface'),
  421. preferences: {
  422. disabled: true
  423. },
  424. )
  425. Permission.create_if_not_exists(
  426. name: 'ticket.agent',
  427. note: __('Access to Agent Tickets based on Group Access'),
  428. preferences: {
  429. plugin: ['groups']
  430. },
  431. )
  432. Permission.create_if_not_exists(
  433. name: 'ticket.customer',
  434. note: __('Access to customer tickets'),
  435. preferences: {},
  436. allow_signup: true,
  437. )
  438. Permission.create_if_not_exists(
  439. name: 'chat',
  440. note: __('Access to %s'),
  441. preferences: {
  442. translations: [__('Chat')],
  443. disabled: true,
  444. },
  445. )
  446. Permission.create_if_not_exists(
  447. name: 'chat.agent',
  448. note: __('Access to %s'),
  449. preferences: {
  450. translations: [__('Chat')],
  451. },
  452. )
  453. Permission.create_if_not_exists(
  454. name: 'cti',
  455. note: __('CTI'),
  456. preferences: {
  457. disabled: true
  458. },
  459. )
  460. Permission.create_if_not_exists(
  461. name: 'cti.agent',
  462. note: __('Access to %s'),
  463. preferences: {
  464. translations: [__('CTI')],
  465. },
  466. )
  467. Permission.create_if_not_exists(
  468. name: 'admin.knowledge_base',
  469. note: __('Create and set up %s'),
  470. preferences: {
  471. translations: [__('Knowledge Base')]
  472. }
  473. )
  474. Permission.create_if_not_exists(
  475. name: 'knowledge_base',
  476. note: __('Knowledge Base'),
  477. preferences: {
  478. disabled: true,
  479. }
  480. )
  481. Permission.create_if_not_exists(
  482. name: 'knowledge_base.editor',
  483. note: __('Knowledge Base Editor'),
  484. preferences: {}
  485. )
  486. Permission.create_if_not_exists(
  487. name: 'knowledge_base.reader',
  488. note: __('Knowledge Base Reader'),
  489. preferences: {},
  490. allow_signup: true,
  491. )
  492. admin = Role.find_by(name: 'Admin')
  493. admin.permission_grant('user_preferences')
  494. admin.permission_grant('admin')
  495. admin.permission_grant('report')
  496. admin.permission_grant('knowledge_base.editor')
  497. agent = Role.find_by(name: 'Agent')
  498. agent.permission_grant('user_preferences')
  499. agent.permission_grant('ticket.agent')
  500. agent.permission_grant('chat.agent')
  501. agent.permission_grant('cti.agent')
  502. agent.permission_grant('knowledge_base.reader')
  503. customer = Role.find_by(name: 'Customer')
  504. customer.permission_grant('user_preferences.password')
  505. customer.permission_grant('user_preferences.language')
  506. customer.permission_grant('user_preferences.linked_accounts')
  507. customer.permission_grant('user_preferences.avatar')
  508. customer.permission_grant('user_preferences.appearance')
  509. customer.permission_grant('ticket.customer')