@edular/permissions 3.2.6 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,48 @@
1
+ export declare enum UserProfileType {
2
+ ApiKey = "api_key",
3
+ Admin = "admin",
4
+ Staff = "staff",
5
+ Student = "student",
6
+ Others = "others"
7
+ }
8
+ export declare type PermissionDetails = {
9
+ permissionId: number;
10
+ name: string;
11
+ departmentId?: number;
12
+ subunitId?: number;
13
+ };
14
+ export declare enum PermissionType {
15
+ View = "view",
16
+ Add = "add",
17
+ Edit = "edit",
18
+ Delete = "delete"
19
+ }
20
+ export declare enum DepartmentPermissionTarget {
21
+ DocumentsListView = "documents.list_view",
22
+ DocumentsDetailView = "documents.detail_view",
23
+ Activities = "activities",
24
+ Tasks = "tasks",
25
+ TasksAccessOthers = "tasks.access_others"
26
+ }
27
+ export declare const DepartmentPermissionTargetTypes: {
28
+ "documents.list_view": PermissionType[];
29
+ "documents.detail_view": PermissionType[];
30
+ activities: PermissionType[];
31
+ tasks: PermissionType[];
32
+ "tasks.access_others": PermissionType[];
33
+ };
34
+ export declare type ProfilePermissionsDetails = {
35
+ type: UserProfileType.Staff;
36
+ enabledPermissionIds: number[];
37
+ enabledDepartmentPermissionIds: number[];
38
+ } | {
39
+ type: UserProfileType.Student;
40
+ enabledPermissionIds: number[];
41
+ } | {
42
+ type: UserProfileType.Admin;
43
+ } | {
44
+ type: UserProfileType.ApiKey;
45
+ } | {
46
+ type: UserProfileType.Others;
47
+ enabledPermissionIds: number[];
48
+ };
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ var _a;
3
+ exports.__esModule = true;
4
+ exports.DepartmentPermissionTargetTypes = exports.DepartmentPermissionTarget = exports.PermissionType = exports.UserProfileType = void 0;
5
+ var UserProfileType;
6
+ (function (UserProfileType) {
7
+ UserProfileType["ApiKey"] = "api_key";
8
+ UserProfileType["Admin"] = "admin";
9
+ UserProfileType["Staff"] = "staff";
10
+ UserProfileType["Student"] = "student";
11
+ UserProfileType["Others"] = "others";
12
+ })(UserProfileType = exports.UserProfileType || (exports.UserProfileType = {}));
13
+ var PermissionType;
14
+ (function (PermissionType) {
15
+ PermissionType["View"] = "view";
16
+ PermissionType["Add"] = "add";
17
+ PermissionType["Edit"] = "edit";
18
+ PermissionType["Delete"] = "delete";
19
+ })(PermissionType = exports.PermissionType || (exports.PermissionType = {}));
20
+ var DepartmentPermissionTarget;
21
+ (function (DepartmentPermissionTarget) {
22
+ DepartmentPermissionTarget["DocumentsListView"] = "documents.list_view";
23
+ DepartmentPermissionTarget["DocumentsDetailView"] = "documents.detail_view";
24
+ DepartmentPermissionTarget["Activities"] = "activities";
25
+ DepartmentPermissionTarget["Tasks"] = "tasks";
26
+ DepartmentPermissionTarget["TasksAccessOthers"] = "tasks.access_others";
27
+ })(DepartmentPermissionTarget = exports.DepartmentPermissionTarget || (exports.DepartmentPermissionTarget = {}));
28
+ exports.DepartmentPermissionTargetTypes = (_a = {},
29
+ _a[DepartmentPermissionTarget.DocumentsListView] = [PermissionType.View],
30
+ _a[DepartmentPermissionTarget.DocumentsDetailView] = [
31
+ PermissionType.View,
32
+ PermissionType.Add,
33
+ PermissionType.Edit,
34
+ PermissionType.Delete,
35
+ ],
36
+ _a[DepartmentPermissionTarget.Activities] = [
37
+ PermissionType.View,
38
+ PermissionType.Add,
39
+ PermissionType.Edit,
40
+ PermissionType.Delete,
41
+ ],
42
+ _a[DepartmentPermissionTarget.Tasks] = [
43
+ PermissionType.View,
44
+ PermissionType.Add,
45
+ PermissionType.Edit,
46
+ PermissionType.Delete,
47
+ ],
48
+ _a[DepartmentPermissionTarget.TasksAccessOthers] = [
49
+ PermissionType.View,
50
+ PermissionType.Edit,
51
+ PermissionType.Delete,
52
+ ],
53
+ _a);
@@ -0,0 +1,4 @@
1
+ import { DepartmentPermissionTarget, PermissionDetails, PermissionType, ProfilePermissionsDetails } from './constants';
2
+ export declare const checkIfProfileHasNeededPermissions: (profilePermissions: ProfilePermissionsDetails, permissionIds: number[]) => boolean;
3
+ export declare const getEnabledPermissionsForTarget: (permissions: PermissionDetails[], target: DepartmentPermissionTarget, type: PermissionType) => PermissionDetails[];
4
+ export declare const checkPermissionsForSubunits: (permissions: PermissionDetails[], target: DepartmentPermissionTarget, type: PermissionType, subunitIds: number[]) => boolean;
package/lib/helpers.js ADDED
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ exports.checkPermissionsForSubunits = exports.getEnabledPermissionsForTarget = exports.checkIfProfileHasNeededPermissions = void 0;
4
+ var constants_1 = require("./constants");
5
+ var checkIfProfileHasNeededPermissions = function (profilePermissions, permissionIds) {
6
+ if (permissionIds.length === 0) {
7
+ throw new Error("Permission IDs can't be an empty array");
8
+ }
9
+ if (profilePermissions.type === constants_1.UserProfileType.Admin ||
10
+ profilePermissions.type === constants_1.UserProfileType.ApiKey) {
11
+ return true;
12
+ }
13
+ return permissionIds.every(function (permissionId) {
14
+ return profilePermissions.enabledPermissionIds.includes(permissionId);
15
+ });
16
+ };
17
+ exports.checkIfProfileHasNeededPermissions = checkIfProfileHasNeededPermissions;
18
+ var getEnabledPermissionsForTarget = function (permissions, target, type) {
19
+ return permissions.filter(function (permission) {
20
+ return permission.name.endsWith(target + "." + type);
21
+ });
22
+ };
23
+ exports.getEnabledPermissionsForTarget = getEnabledPermissionsForTarget;
24
+ var checkPermissionsForSubunits = function (permissions, target, type, subunitIds) {
25
+ var enabledPermissions = (0, exports.getEnabledPermissionsForTarget)(permissions, target, type);
26
+ return subunitIds.every(function (subunitId) {
27
+ return enabledPermissions.find(function (permission) { return permission.subunitId === subunitId; });
28
+ });
29
+ };
30
+ exports.checkPermissionsForSubunits = checkPermissionsForSubunits;
package/lib/index.d.ts CHANGED
@@ -1 +1,3 @@
1
1
  export * from './permissions';
2
+ export * from './constants';
3
+ export * from './helpers';
package/lib/index.js CHANGED
@@ -11,3 +11,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
11
11
  };
12
12
  exports.__esModule = true;
13
13
  __exportStar(require("./permissions"), exports);
14
+ __exportStar(require("./constants"), exports);
15
+ __exportStar(require("./helpers"), exports);
@@ -47,6 +47,9 @@ export declare const Permissions: {
47
47
  Edit: number;
48
48
  Delete: number;
49
49
  };
50
+ UpdateAdvisor: {
51
+ Edit: number;
52
+ };
50
53
  };
51
54
  };
52
55
  Practical: {
@@ -95,6 +98,9 @@ export declare const Permissions: {
95
98
  Edit: number;
96
99
  Delete: number;
97
100
  };
101
+ UpdateAdvisor: {
102
+ Edit: number;
103
+ };
98
104
  };
99
105
  Attendance: {
100
106
  View: number;
@@ -124,6 +130,9 @@ export declare const Permissions: {
124
130
  Edit: number;
125
131
  Delete: number;
126
132
  };
133
+ UpdateAdvisor: {
134
+ Edit: number;
135
+ };
127
136
  Checklist: {
128
137
  View: number;
129
138
  Add: number;
@@ -168,6 +177,9 @@ export declare const Permissions: {
168
177
  Edit: number;
169
178
  Delete: number;
170
179
  };
180
+ UpdateAdvisor: {
181
+ Edit: number;
182
+ };
171
183
  Checklist: {
172
184
  View: number;
173
185
  Add: number;
@@ -214,6 +226,9 @@ export declare const Permissions: {
214
226
  Edit: number;
215
227
  Delete: number;
216
228
  };
229
+ UpdateAdvisor: {
230
+ Edit: number;
231
+ };
217
232
  };
218
233
  Orders: {
219
234
  View: number;
@@ -243,6 +258,9 @@ export declare const Permissions: {
243
258
  Edit: number;
244
259
  Delete: number;
245
260
  };
261
+ UpdateAdvisor: {
262
+ Edit: number;
263
+ };
246
264
  StudentDetail: {
247
265
  View: number;
248
266
  Add: number;
@@ -617,34 +635,26 @@ export declare const Permissions: {
617
635
  Delete: number;
618
636
  };
619
637
  };
620
- MediaLibrary: {
621
- View: number;
622
- Add: number;
623
- Edit: number;
624
- Delete: number;
625
- };
626
638
  Tasks: {
627
- Library: {
639
+ Assigned: {
628
640
  View: number;
629
641
  Add: number;
630
642
  Edit: number;
631
643
  Delete: number;
632
644
  };
633
- Assigned: {
634
- Responses: {
635
- View: number;
636
- Add: number;
637
- Edit: number;
638
- Delete: number;
639
- };
640
- TaskDetail: {
641
- View: number;
642
- Add: number;
643
- Edit: number;
644
- Delete: number;
645
- };
645
+ Library: {
646
+ View: number;
647
+ Add: number;
648
+ Edit: number;
649
+ Delete: number;
646
650
  };
647
651
  };
652
+ MediaLibrary: {
653
+ View: number;
654
+ Add: number;
655
+ Edit: number;
656
+ Delete: number;
657
+ };
648
658
  Resources: {
649
659
  Resources: {
650
660
  View: number;
@@ -49,6 +49,9 @@ exports.Permissions = {
49
49
  Add: 5842,
50
50
  Edit: 5843,
51
51
  Delete: 5844
52
+ },
53
+ UpdateAdvisor: {
54
+ Edit: 5893
52
55
  }
53
56
  }
54
57
  },
@@ -97,6 +100,9 @@ exports.Permissions = {
97
100
  Add: 1352,
98
101
  Edit: 1353,
99
102
  Delete: 1354
103
+ },
104
+ UpdateAdvisor: {
105
+ Edit: 1373
100
106
  }
101
107
  },
102
108
  Attendance: {
@@ -127,6 +133,9 @@ exports.Permissions = {
127
133
  Edit: 1463,
128
134
  Delete: 1464
129
135
  },
136
+ UpdateAdvisor: {
137
+ Edit: 1473
138
+ },
130
139
  Checklist: {
131
140
  View: 5821,
132
141
  Add: 5822,
@@ -171,6 +180,9 @@ exports.Permissions = {
171
180
  Edit: 1623,
172
181
  Delete: 1624
173
182
  },
183
+ UpdateAdvisor: {
184
+ Edit: 1643
185
+ },
174
186
  Checklist: {
175
187
  View: 5811,
176
188
  Add: 5812,
@@ -216,6 +228,9 @@ exports.Permissions = {
216
228
  Add: 1752,
217
229
  Edit: 1753,
218
230
  Delete: 1754
231
+ },
232
+ UpdateAdvisor: {
233
+ Edit: 1773
219
234
  }
220
235
  },
221
236
  Orders: {
@@ -246,6 +261,9 @@ exports.Permissions = {
246
261
  Edit: 1843,
247
262
  Delete: 1844
248
263
  },
264
+ UpdateAdvisor: {
265
+ Edit: 1893
266
+ },
249
267
  StudentDetail: {
250
268
  View: 5851,
251
269
  Add: 5852,
@@ -620,34 +638,26 @@ exports.Permissions = {
620
638
  Delete: 5914
621
639
  }
622
640
  },
623
- MediaLibrary: {
624
- View: 2821,
625
- Add: 2822,
626
- Edit: 2823,
627
- Delete: 2824
628
- },
629
641
  Tasks: {
642
+ Assigned: {
643
+ View: 2811,
644
+ Add: 2812,
645
+ Edit: 2813,
646
+ Delete: 2814
647
+ },
630
648
  Library: {
631
649
  View: 2831,
632
650
  Add: 2832,
633
651
  Edit: 2833,
634
652
  Delete: 2834
635
- },
636
- Assigned: {
637
- Responses: {
638
- View: 5921,
639
- Add: 5922,
640
- Edit: 5923,
641
- Delete: 5924
642
- },
643
- TaskDetail: {
644
- View: 5931,
645
- Add: 5932,
646
- Edit: 5933,
647
- Delete: 5934
648
- }
649
653
  }
650
654
  },
655
+ MediaLibrary: {
656
+ View: 2821,
657
+ Add: 2822,
658
+ Edit: 2823,
659
+ Delete: 2824
660
+ },
651
661
  Resources: {
652
662
  Resources: {
653
663
  View: 2851,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@edular/permissions",
3
- "version": "3.2.6",
3
+ "version": "4.1.0",
4
4
  "author": "Edular",
5
5
  "license": "MIT",
6
6
  "main": "lib/index.js",