|
1 | | -import type { |
2 | | - INetworkingPermission, |
3 | | - IPermission, |
4 | | - IReadSettingPermission, |
5 | | - IWorkspaceTokenPermission, |
6 | | -} from '@rocket.chat/apps-engine/definition/permissions/IPermission'; |
7 | | - |
8 | | -/** |
9 | | - * @description |
10 | | - * |
11 | | - * App Permission naming rules: |
12 | | - * |
13 | | - * 'scope-name': { |
14 | | - * 'permission-name': { name: 'scope-name.permission-name' } |
15 | | - * } |
16 | | - * |
17 | | - * You can retrive this permission by using: |
18 | | - * AppPermissions['scope-name']['permission-name'] -> { name: 'scope-name.permission-name' } |
19 | | - * |
20 | | - * @example |
21 | | - * |
22 | | - * AppPermissions.upload.read // { name: 'upload.read', domains: [] } |
23 | | - */ |
24 | | -export const AppPermissions = { |
25 | | - 'user': { |
26 | | - read: { name: 'user.read' }, |
27 | | - write: { name: 'user.write' }, |
28 | | - }, |
29 | | - 'upload': { |
30 | | - read: { name: 'upload.read' }, |
31 | | - write: { name: 'upload.write' }, |
32 | | - }, |
33 | | - 'email': { |
34 | | - send: { name: 'email.send' }, |
35 | | - }, |
36 | | - 'ui': { |
37 | | - interaction: { name: 'ui.interact' }, |
38 | | - registerButtons: { name: 'ui.registerButtons' }, |
39 | | - }, |
40 | | - 'setting': { |
41 | | - read: { name: 'server-setting.read', hiddenSettings: [] } as IReadSettingPermission, |
42 | | - write: { name: 'server-setting.write' }, |
43 | | - }, |
44 | | - 'room': { |
45 | | - 'read': { name: 'room.read' }, |
46 | | - 'write': { name: 'room.write' }, |
47 | | - 'system-view-all': { name: 'room.system.view-all' }, |
48 | | - }, |
49 | | - 'role': { |
50 | | - read: { name: 'role.read' }, |
51 | | - write: { name: 'role.write' }, |
52 | | - }, |
53 | | - 'message': { |
54 | | - read: { name: 'message.read' }, |
55 | | - write: { name: 'message.write' }, |
56 | | - }, |
57 | | - 'moderation': { |
58 | | - read: { name: 'moderation.read' }, |
59 | | - write: { name: 'moderation.write' }, |
60 | | - }, |
61 | | - 'contact': { |
62 | | - read: { name: 'contact.read' }, |
63 | | - write: { name: 'contact.write' }, |
64 | | - }, |
65 | | - 'threads': { |
66 | | - read: { name: 'threads.read' }, |
67 | | - }, |
68 | | - 'livechat-status': { |
69 | | - read: { name: 'livechat-status.read' }, |
70 | | - }, |
71 | | - 'livechat-custom-fields': { |
72 | | - write: { name: 'livechat-custom-fields.write' }, |
73 | | - }, |
74 | | - 'livechat-visitor': { |
75 | | - read: { name: 'livechat-visitor.read' }, |
76 | | - write: { name: 'livechat-visitor.write' }, |
77 | | - }, |
78 | | - 'livechat-message': { |
79 | | - read: { name: 'livechat-message.read' }, |
80 | | - write: { name: 'livechat-message.write' }, |
81 | | - multiple: { name: 'livechat-message.multiple' }, |
82 | | - }, |
83 | | - 'livechat-room': { |
84 | | - read: { name: 'livechat-room.read' }, |
85 | | - write: { name: 'livechat-room.write' }, |
86 | | - }, |
87 | | - 'livechat-department': { |
88 | | - read: { name: 'livechat-department.read' }, |
89 | | - write: { name: 'livechat-department.write' }, |
90 | | - multiple: { name: 'livechat-department.multiple' }, |
91 | | - }, |
92 | | - 'env': { |
93 | | - read: { name: 'env.read' }, |
94 | | - }, |
95 | | - 'cloud': { |
96 | | - 'workspace-token': { name: 'cloud.workspace-token', scopes: [] } as IWorkspaceTokenPermission, |
97 | | - }, |
98 | | - // Internal permissions |
99 | | - 'scheduler': { |
100 | | - default: { name: 'scheduler' }, |
101 | | - }, |
102 | | - 'networking': { |
103 | | - default: { name: 'networking', domains: [] } as INetworkingPermission, |
104 | | - }, |
105 | | - 'persistence': { |
106 | | - default: { name: 'persistence' }, |
107 | | - }, |
108 | | - 'command': { |
109 | | - default: { name: 'slashcommand' }, |
110 | | - }, |
111 | | - 'videoConference': { |
112 | | - read: { name: 'video-conference.read' }, |
113 | | - write: { name: 'video-conference.write' }, |
114 | | - provider: { name: 'video-conference-provider' }, |
115 | | - }, |
116 | | - 'apis': { |
117 | | - default: { name: 'api' }, |
118 | | - }, |
119 | | - 'oauth-app': { |
120 | | - read: { name: 'oauth-app.read' }, |
121 | | - write: { name: 'oauth-app.write' }, |
122 | | - }, |
123 | | - 'outboundComms': { |
124 | | - provide: { name: 'outbound-communication.provide' }, |
125 | | - }, |
126 | | - 'experimental': { |
127 | | - default: { name: 'experimental.default' }, |
128 | | - }, |
129 | | - 'abac': { |
130 | | - read: { name: 'abac.read' }, |
131 | | - }, |
132 | | -}; |
133 | | - |
134 | | -/** |
135 | | - * @description |
136 | | - * Default permissions for apps |
137 | | - * Used to ensure backward compatibility with apps |
138 | | - * that were developed before the permission system was introduced. |
139 | | - */ |
140 | | -export const defaultPermissions: Array<IPermission> = [ |
141 | | - AppPermissions.user.read, |
142 | | - AppPermissions.user.write, |
143 | | - AppPermissions.upload.read, |
144 | | - AppPermissions.upload.write, |
145 | | - AppPermissions.ui.interaction, |
146 | | - AppPermissions.setting.read, |
147 | | - AppPermissions.setting.write, |
148 | | - AppPermissions.room.read, |
149 | | - AppPermissions.room.write, |
150 | | - AppPermissions.message.read, |
151 | | - AppPermissions.message.write, |
152 | | - AppPermissions['livechat-department'].read, |
153 | | - AppPermissions['livechat-department'].write, |
154 | | - AppPermissions['livechat-room'].read, |
155 | | - AppPermissions['livechat-room'].write, |
156 | | - AppPermissions['livechat-message'].read, |
157 | | - AppPermissions['livechat-message'].write, |
158 | | - AppPermissions['livechat-visitor'].read, |
159 | | - AppPermissions['livechat-visitor'].write, |
160 | | - AppPermissions['livechat-status'].read, |
161 | | - AppPermissions['livechat-custom-fields'].write, |
162 | | - AppPermissions.scheduler.default, |
163 | | - AppPermissions.networking.default, |
164 | | - AppPermissions.persistence.default, |
165 | | - AppPermissions.env.read, |
166 | | - AppPermissions.command.default, |
167 | | - AppPermissions.videoConference.provider, |
168 | | - AppPermissions.videoConference.read, |
169 | | - AppPermissions.videoConference.write, |
170 | | - AppPermissions.apis.default, |
171 | | -]; |
| 1 | +export { AppPermissions, defaultPermissions } from '@rocket.chat/apps-engine/definition/metadata/AppPermissions'; |
0 commit comments