@holoyan/adonisjs-permissions 0.8.21 → 0.9.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.
Files changed (49) hide show
  1. package/README.md +295 -4
  2. package/build/index.d.ts +1 -1
  3. package/build/index.js +1 -1
  4. package/build/providers/role_permission_provider.js +11 -0
  5. package/build/src/acl.d.ts +18 -7
  6. package/build/src/acl.js +43 -21
  7. package/build/src/decorators.d.ts +3 -1
  8. package/build/src/events/index.d.ts +2 -0
  9. package/build/src/events/index.js +2 -0
  10. package/build/src/events/permissions/permissions.d.ts +80 -0
  11. package/build/src/events/permissions/permissions.js +113 -0
  12. package/build/src/events/roles/roles.d.ts +40 -0
  13. package/build/src/events/roles/roles.js +55 -0
  14. package/build/src/mixins/has_permissions.d.ts +248 -79
  15. package/build/src/mixins/has_permissions.js +199 -23
  16. package/build/src/models/model_permission.d.ts +0 -1
  17. package/build/src/models/model_permission.js +0 -4
  18. package/build/src/models/model_role.d.ts +0 -1
  19. package/build/src/models/model_role.js +0 -4
  20. package/build/src/models/permission.d.ts +3 -4
  21. package/build/src/models/permission.js +2 -8
  22. package/build/src/models/role.d.ts +3 -4
  23. package/build/src/models/role.js +2 -8
  24. package/build/src/services/base_adapter.d.ts +10 -3
  25. package/build/src/services/base_adapter.js +30 -6
  26. package/build/src/services/base_service.d.ts +7 -3
  27. package/build/src/services/base_service.js +8 -4
  28. package/build/src/services/models/model_has_role_permissions.d.ts +185 -0
  29. package/build/src/services/models/model_has_role_permissions.js +346 -0
  30. package/build/src/services/{model_service.d.ts → models/model_service.d.ts} +7 -5
  31. package/build/src/services/{model_service.js → models/model_service.js} +6 -4
  32. package/build/src/services/permissions/empty_permission.d.ts +10 -8
  33. package/build/src/services/permissions/empty_permission.js +26 -10
  34. package/build/src/services/permissions/permission_has_model_roles.d.ts +24 -17
  35. package/build/src/services/permissions/permission_has_model_roles.js +48 -31
  36. package/build/src/services/permissions/permissions_service.d.ts +25 -23
  37. package/build/src/services/permissions/permissions_service.js +12 -11
  38. package/build/src/services/roles/empty_roles.d.ts +11 -8
  39. package/build/src/services/roles/empty_roles.js +27 -8
  40. package/build/src/services/roles/role_has_model_permissions.d.ts +71 -20
  41. package/build/src/services/roles/role_has_model_permissions.js +87 -19
  42. package/build/src/services/roles/roles_service.d.ts +8 -4
  43. package/build/src/services/roles/roles_service.js +15 -16
  44. package/build/src/types.d.ts +18 -7
  45. package/build/stubs/middlewares/acl_middleware.stub +1 -0
  46. package/build/stubs/migrations/create_db.stub +71 -56
  47. package/package.json +3 -2
  48. package/build/src/services/model_has_role_permissions.d.ts +0 -65
  49. package/build/src/services/model_has_role_permissions.js +0 -189
@@ -1,189 +0,0 @@
1
- import RolesService from './roles/roles_service.js';
2
- import { destructTarget, formatList } from './helper.js';
3
- import BaseAdapter from './base_adapter.js';
4
- import PermissionService from './permissions/permissions_service.js';
5
- export class ModelHasRolePermissions extends BaseAdapter {
6
- manager;
7
- map;
8
- options;
9
- model;
10
- roleService;
11
- permissionService;
12
- constructor(manager, map, options, model) {
13
- super(manager, map, options);
14
- this.manager = manager;
15
- this.map = map;
16
- this.options = options;
17
- this.model = model;
18
- const role = manager.getModel('role');
19
- const modelPermission = manager.getModel('modelPermission');
20
- const modelRole = manager.getModel('modelRole');
21
- this.roleService = new RolesService(this.options, role, modelPermission, modelRole, map);
22
- this.permissionService = new PermissionService(this.options, manager.getModel('permission'), role, modelPermission, modelRole, map);
23
- }
24
- // roles related section BEGIN
25
- roles() {
26
- return this.roleService.all(this.map.getAlias(this.model), this.model.getModelId());
27
- }
28
- hasRole(role) {
29
- return this.roleService.has(this.map.getAlias(this.model), this.model.getModelId(), role);
30
- }
31
- hasAllRoles(...roles) {
32
- return this.roleService.hasAll(this.map.getAlias(this.model), this.model.getModelId(), roles);
33
- }
34
- hasAnyRole(...roles) {
35
- return this.roleService.hasAny(this.map.getAlias(this.model), this.model.getModelId(), roles);
36
- }
37
- assignRole(role) {
38
- return this.roleService.assign(role, this.map.getAlias(this.model), this.model.getModelId());
39
- }
40
- assign(role) {
41
- return this.assignRole(role);
42
- }
43
- assignAllRoles(...roles) {
44
- return this.roleService.assignAll(roles, this.map.getAlias(this.model), this.model.getModelId());
45
- }
46
- revokeRole(role) {
47
- return this.revokeAllRoles(role);
48
- }
49
- revokeAllRoles(...roles) {
50
- const { slugs } = formatList(roles);
51
- return this.roleService.revokeAll(slugs, this.model);
52
- }
53
- flushRoles() {
54
- return this.roleService.flush(this.map.getAlias(this.model), this.model.getModelId());
55
- }
56
- // roles related section END
57
- // permissions related section BEGIN
58
- async permissions(includeForbiddings = false) {
59
- return this.permissionService.all(this.map.getAlias(this.model), this.model.getModelId(), includeForbiddings);
60
- }
61
- async globalPermissions(includeForbiddings = false) {
62
- return this.permissionService.global(this.map.getAlias(this.model), this.model.getModelId(), includeForbiddings);
63
- }
64
- async onResourcePermissions(includeForbiddings = false) {
65
- return this.permissionService.onResource(this.map.getAlias(this.model), this.model.getModelId(), includeForbiddings);
66
- }
67
- directPermissions(includeForbiddings = false) {
68
- return this.permissionService.direct(this.map.getAlias(this.model), this.model.getModelId(), includeForbiddings);
69
- }
70
- /**
71
- * Get permission through roles
72
- * @param includeForbiddings
73
- */
74
- rolePermissions(includeForbiddings = false) {
75
- return this.permissionService.throughRoles(this.map.getAlias(this.model), this.model.getModelId(), includeForbiddings);
76
- }
77
- async directGlobalPermissions(includeForbiddings = false) {
78
- return this.permissionService.directGlobal(this.map.getAlias(this.model), this.model.getModelId(), includeForbiddings);
79
- }
80
- async directResourcePermissions(includeForbiddings = false) {
81
- return this.permissionService.directResource(this.map.getAlias(this.model), this.model.getModelId(), includeForbiddings);
82
- }
83
- async containsPermission(permission) {
84
- const result = await this.permissionService.containsAny(this.map.getAlias(this.model), this.model.getModelId(), [permission]);
85
- return result;
86
- }
87
- async contains(permission) {
88
- return this.containsPermission(permission);
89
- }
90
- async containsAllPermissions(permissions) {
91
- const result = await this.permissionService.containsAll(this.map.getAlias(this.model), this.model.getModelId(), permissions);
92
- return result;
93
- }
94
- async containsAnyPermission(permissions) {
95
- const result = await this.permissionService.containsAny(this.map.getAlias(this.model), this.model.getModelId(), permissions);
96
- return result;
97
- }
98
- async containsDirectPermission(permission) {
99
- const result = await this.permissionService.containsAnyDirect(this.map.getAlias(this.model), this.model.getModelId(), [permission]);
100
- return result;
101
- }
102
- containsAllPermissionsDirectly(permissions) {
103
- return this.permissionService.containsAllDirect(this.map.getAlias(this.model), this.model.getModelId(), permissions);
104
- }
105
- async containsAnyPermissionDirectly(permissions) {
106
- const result = await this.permissionService.containsAnyDirect(this.map.getAlias(this.model), this.model.getModelId(), permissions);
107
- return result;
108
- }
109
- async hasPermission(permission, target) {
110
- return this.hasAnyPermission([permission], target);
111
- }
112
- async hasAllPermissions(permissions, target) {
113
- const entity = await destructTarget(this.map, target);
114
- return await this.permissionService.hasAll(this.map.getAlias(this.model), this.model.getModelId(), permissions, entity.targetClass, entity.targetId);
115
- }
116
- async hasAnyPermission(permissions, target) {
117
- const entity = await destructTarget(this.map, target);
118
- return await this.permissionService.hasAny(this.map.getAlias(this.model), this.model.getModelId(), permissions, entity.targetClass, entity.targetId);
119
- }
120
- async hasAnyDirectPermission(permissions, target) {
121
- const entity = await destructTarget(this.map, target);
122
- return await this.permissionService.hasAnyDirect(this.map.getAlias(this.model), this.model.getModelId(), permissions, entity.targetClass, entity.targetId);
123
- }
124
- async hasDirectPermission(permission, target) {
125
- return this.hasAnyDirectPermission([permission], target);
126
- }
127
- async hasAllPermissionsDirect(permissions, target) {
128
- const entity = await destructTarget(this.map, target);
129
- return await this.permissionService.hasAllDirect(this.map.getAlias(this.model), this.model.getModelId(), permissions, entity.targetClass, entity.targetId);
130
- }
131
- can(permission, target) {
132
- return this.hasPermission(permission, target);
133
- }
134
- canAll(permissions, target) {
135
- return this.hasAllPermissions(permissions, target);
136
- }
137
- canAny(permissions, target) {
138
- return this.hasAnyPermission(permissions, target);
139
- }
140
- async assignDirectPermission(permission, target) {
141
- const entity = await destructTarget(this.map, target);
142
- return this.permissionService.giveAll(this.map.getAlias(this.model), this.model.getModelId(), [permission], entity.targetClass, entity.targetId, true);
143
- }
144
- async assignDirectAllPermissions(permissions, target) {
145
- const entity = await destructTarget(this.map, target);
146
- return this.permissionService.giveAll(this.map.getAlias(this.model), this.model.getModelId(), permissions, entity.targetClass, entity.targetId, true);
147
- }
148
- allow(permission, target) {
149
- return this.allowAll([permission], target);
150
- }
151
- allowAll(permission, target) {
152
- return this.assignDirectAllPermissions(permission, target);
153
- }
154
- async revokePermission(permission, target) {
155
- return this.revokeAllPermissions([permission], target);
156
- }
157
- async revoke(permission, target) {
158
- return this.revokeAllPermissions([permission], target);
159
- }
160
- async revokeAll(permissions, target) {
161
- return this.revokeAllPermissions(permissions, target);
162
- }
163
- async revokeAllPermissions(permissions, target) {
164
- const entity = await destructTarget(this.map, target);
165
- return this.permissionService.revokeAll(this.map.getAlias(this.model), this.model.getModelId(), permissions, entity.targetClass, entity.targetId);
166
- }
167
- async flushPermissions() {
168
- return this.permissionService.flush(this.map.getAlias(this.model), this.model.getModelId());
169
- }
170
- async flush() {
171
- await this.permissionService.flush(this.map.getAlias(this.model), this.model.getModelId());
172
- await this.roleService.flush(this.map.getAlias(this.model), this.model.getModelId());
173
- return true;
174
- }
175
- async forbid(permission, target) {
176
- return this.forbidAll([permission], target);
177
- }
178
- async forbidAll(permissions, target) {
179
- const entity = await destructTarget(this.map, target);
180
- return this.permissionService.forbidAll(this.map.getAlias(this.model), this.model.getModelId(), permissions, entity.targetClass, entity.targetId);
181
- }
182
- async unforbidAll(permissions, target) {
183
- const entity = await destructTarget(this.map, target);
184
- return this.permissionService.unforbidAll(this.map.getAlias(this.model), this.model.getModelId(), permissions, entity.targetClass, entity.targetId);
185
- }
186
- async unforbid(permission, target) {
187
- return this.unforbidAll([permission], target);
188
- }
189
- }