@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.
- package/lib/constants.d.ts +48 -0
- package/lib/constants.js +53 -0
- package/lib/helpers.d.ts +4 -0
- package/lib/helpers.js +30 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.js +2 -0
- package/lib/permissions.d.ts +30 -20
- package/lib/permissions.js +30 -20
- package/package.json +1 -1
|
@@ -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
|
+
};
|
package/lib/constants.js
ADDED
|
@@ -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);
|
package/lib/helpers.d.ts
ADDED
|
@@ -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
package/lib/index.js
CHANGED
package/lib/permissions.d.ts
CHANGED
|
@@ -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
|
-
|
|
639
|
+
Assigned: {
|
|
628
640
|
View: number;
|
|
629
641
|
Add: number;
|
|
630
642
|
Edit: number;
|
|
631
643
|
Delete: number;
|
|
632
644
|
};
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
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;
|
package/lib/permissions.js
CHANGED
|
@@ -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,
|