@stamhoofd/structures 2.22.0 → 2.24.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 (261) hide show
  1. package/dist/index.d.ts +28 -20
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +28 -20
  4. package/dist/index.js.map +1 -1
  5. package/dist/src/AccessRight.d.ts +34 -0
  6. package/dist/src/AccessRight.d.ts.map +1 -0
  7. package/dist/src/AccessRight.js +104 -0
  8. package/dist/src/AccessRight.js.map +1 -0
  9. package/dist/src/Group.d.ts +9 -22
  10. package/dist/src/Group.d.ts.map +1 -1
  11. package/dist/src/Group.js +14 -29
  12. package/dist/src/Group.js.map +1 -1
  13. package/dist/src/GroupCategory.d.ts +5 -4
  14. package/dist/src/GroupCategory.d.ts.map +1 -1
  15. package/dist/src/GroupCategory.js +10 -9
  16. package/dist/src/GroupCategory.js.map +1 -1
  17. package/dist/src/GroupPrivateSettings.d.ts +1 -1
  18. package/dist/src/GroupPrivateSettings.d.ts.map +1 -1
  19. package/dist/src/GroupPrivateSettings.js +3 -3
  20. package/dist/src/GroupPrivateSettings.js.map +1 -1
  21. package/dist/src/GroupType.d.ts +15 -0
  22. package/dist/src/GroupType.d.ts.map +1 -0
  23. package/dist/src/GroupType.js +21 -0
  24. package/dist/src/GroupType.js.map +1 -0
  25. package/dist/src/LoadedPermissions.d.ts +32 -0
  26. package/dist/src/LoadedPermissions.d.ts.map +1 -0
  27. package/dist/src/LoadedPermissions.js +230 -0
  28. package/dist/src/LoadedPermissions.js.map +1 -0
  29. package/dist/src/MemberResponsibility.d.ts +2 -1
  30. package/dist/src/MemberResponsibility.d.ts.map +1 -1
  31. package/dist/src/MemberResponsibility.js +13 -10
  32. package/dist/src/MemberResponsibility.js.map +1 -1
  33. package/dist/src/Organization.d.ts +2 -3
  34. package/dist/src/Organization.d.ts.map +1 -1
  35. package/dist/src/Organization.js.map +1 -1
  36. package/dist/src/OrganizationMetaData.d.ts +2 -2
  37. package/dist/src/OrganizationMetaData.d.ts.map +1 -1
  38. package/dist/src/OrganizationMetaData.js +2 -2
  39. package/dist/src/OrganizationMetaData.js.map +1 -1
  40. package/dist/src/OrganizationPrivateMetaData.d.ts +1 -1
  41. package/dist/src/OrganizationPrivateMetaData.d.ts.map +1 -1
  42. package/dist/src/OrganizationPrivateMetaData.js +3 -3
  43. package/dist/src/OrganizationPrivateMetaData.js.map +1 -1
  44. package/dist/src/PermissionLevel.d.ts +18 -0
  45. package/dist/src/PermissionLevel.d.ts.map +1 -0
  46. package/dist/src/PermissionLevel.js +64 -0
  47. package/dist/src/PermissionLevel.js.map +1 -0
  48. package/dist/src/PermissionRole.d.ts +34 -0
  49. package/dist/src/PermissionRole.d.ts.map +1 -0
  50. package/dist/src/PermissionRole.js +212 -0
  51. package/dist/src/PermissionRole.js.map +1 -0
  52. package/dist/src/Permissions.d.ts +7 -159
  53. package/dist/src/Permissions.d.ts.map +1 -1
  54. package/dist/src/Permissions.js +13 -770
  55. package/dist/src/Permissions.js.map +1 -1
  56. package/dist/src/PermissionsByRole.d.ts +24 -0
  57. package/dist/src/PermissionsByRole.d.ts.map +1 -0
  58. package/dist/src/PermissionsByRole.js +97 -0
  59. package/dist/src/PermissionsByRole.js.map +1 -0
  60. package/dist/src/PermissionsResourceType.d.ts +12 -0
  61. package/dist/src/PermissionsResourceType.d.ts.map +1 -0
  62. package/dist/src/PermissionsResourceType.js +25 -0
  63. package/dist/src/PermissionsResourceType.js.map +1 -0
  64. package/dist/src/Platform.d.ts +14 -1
  65. package/dist/src/Platform.d.ts.map +1 -1
  66. package/dist/src/Platform.js +48 -4
  67. package/dist/src/Platform.js.map +1 -1
  68. package/dist/src/RegistrationPeriod.d.ts +3 -2
  69. package/dist/src/RegistrationPeriod.d.ts.map +1 -1
  70. package/dist/src/RegistrationPeriod.js +45 -2
  71. package/dist/src/RegistrationPeriod.js.map +1 -1
  72. package/dist/src/ResourcePermissions.d.ts +29 -0
  73. package/dist/src/ResourcePermissions.d.ts.map +1 -0
  74. package/dist/src/ResourcePermissions.js +77 -0
  75. package/dist/src/ResourcePermissions.js.map +1 -0
  76. package/dist/src/SetupSteps.d.ts +4 -2
  77. package/dist/src/SetupSteps.d.ts.map +1 -1
  78. package/dist/src/SetupSteps.js +2 -0
  79. package/dist/src/SetupSteps.js.map +1 -1
  80. package/dist/src/UserPermissions.d.ts +3 -1
  81. package/dist/src/UserPermissions.d.ts.map +1 -1
  82. package/dist/src/UserPermissions.js +9 -6
  83. package/dist/src/UserPermissions.js.map +1 -1
  84. package/dist/src/Version.d.ts +1 -1
  85. package/dist/src/Version.js +1 -1
  86. package/dist/src/email/EmailTemplate.d.ts +2 -1
  87. package/dist/src/email/EmailTemplate.d.ts.map +1 -1
  88. package/dist/src/email/EmailTemplate.js +16 -8
  89. package/dist/src/email/EmailTemplate.js.map +1 -1
  90. package/dist/src/members/Member.d.ts +1 -1
  91. package/dist/src/members/MemberResponsibilityRecord.d.ts +5 -1
  92. package/dist/src/members/MemberResponsibilityRecord.d.ts.map +1 -1
  93. package/dist/src/members/MemberResponsibilityRecord.js +21 -10
  94. package/dist/src/members/MemberResponsibilityRecord.js.map +1 -1
  95. package/dist/src/members/MemberWithRegistrationsBlob.d.ts +1 -1
  96. package/dist/src/members/MemberWithRegistrationsBlob.d.ts.map +1 -1
  97. package/dist/src/members/MemberWithRegistrationsBlob.js +1 -1
  98. package/dist/src/members/MemberWithRegistrationsBlob.js.map +1 -1
  99. package/dist/src/members/OrganizationRecordsConfiguration.d.ts +1 -1
  100. package/dist/src/members/OrganizationRecordsConfiguration.d.ts.map +1 -1
  101. package/dist/src/members/OrganizationRecordsConfiguration.js +4 -4
  102. package/dist/src/members/OrganizationRecordsConfiguration.js.map +1 -1
  103. package/dist/src/members/PlatformMember.d.ts +4 -3
  104. package/dist/src/members/PlatformMember.d.ts.map +1 -1
  105. package/dist/src/members/PlatformMember.js +10 -26
  106. package/dist/src/members/PlatformMember.js.map +1 -1
  107. package/dist/src/members/checkout/RegisterCart.d.ts +2 -2
  108. package/dist/src/members/checkout/RegisterCart.d.ts.map +1 -1
  109. package/dist/src/members/checkout/RegisterCart.js +33 -3
  110. package/dist/src/members/checkout/RegisterCart.js.map +1 -1
  111. package/dist/src/members/checkout/RegisterCheckout.d.ts +1 -0
  112. package/dist/src/members/checkout/RegisterCheckout.d.ts.map +1 -1
  113. package/dist/src/members/checkout/RegisterCheckout.js +5 -1
  114. package/dist/src/members/checkout/RegisterCheckout.js.map +1 -1
  115. package/dist/src/members/checkout/RegisterItem.d.ts +1 -0
  116. package/dist/src/members/checkout/RegisterItem.d.ts.map +1 -1
  117. package/dist/src/members/checkout/RegisterItem.js +27 -6
  118. package/dist/src/members/checkout/RegisterItem.js.map +1 -1
  119. package/dist/src/members/records/RecordAnswer.d.ts +1 -0
  120. package/dist/src/members/records/RecordAnswer.d.ts.map +1 -1
  121. package/dist/src/members/records/RecordAnswer.js +6 -0
  122. package/dist/src/members/records/RecordAnswer.js.map +1 -1
  123. package/dist/src/members/records/RecordSettings.d.ts +2 -3
  124. package/dist/src/members/records/RecordSettings.d.ts.map +1 -1
  125. package/dist/src/members/records/RecordSettings.js +0 -7
  126. package/dist/src/members/records/RecordSettings.js.map +1 -1
  127. package/dist/src/webshops/WebshopMetaData.d.ts +2 -2
  128. package/dist/src/webshops/WebshopMetaData.d.ts.map +1 -1
  129. package/dist/src/webshops/WebshopMetaData.js +5 -5
  130. package/dist/src/webshops/WebshopMetaData.js.map +1 -1
  131. package/esm/dist/index.d.ts +28 -20
  132. package/esm/dist/index.d.ts.map +1 -1
  133. package/esm/dist/index.js +28 -20
  134. package/esm/dist/index.js.map +1 -1
  135. package/esm/dist/src/AccessRight.d.ts +34 -0
  136. package/esm/dist/src/AccessRight.d.ts.map +1 -0
  137. package/esm/dist/src/AccessRight.js +100 -0
  138. package/esm/dist/src/AccessRight.js.map +1 -0
  139. package/esm/dist/src/Group.d.ts +9 -22
  140. package/esm/dist/src/Group.d.ts.map +1 -1
  141. package/esm/dist/src/Group.js +5 -20
  142. package/esm/dist/src/Group.js.map +1 -1
  143. package/esm/dist/src/GroupCategory.d.ts +5 -4
  144. package/esm/dist/src/GroupCategory.d.ts.map +1 -1
  145. package/esm/dist/src/GroupCategory.js +4 -3
  146. package/esm/dist/src/GroupCategory.js.map +1 -1
  147. package/esm/dist/src/GroupPrivateSettings.d.ts +1 -1
  148. package/esm/dist/src/GroupPrivateSettings.d.ts.map +1 -1
  149. package/esm/dist/src/GroupPrivateSettings.js +1 -1
  150. package/esm/dist/src/GroupPrivateSettings.js.map +1 -1
  151. package/esm/dist/src/GroupType.d.ts +15 -0
  152. package/esm/dist/src/GroupType.d.ts.map +1 -0
  153. package/esm/dist/src/GroupType.js +18 -0
  154. package/esm/dist/src/GroupType.js.map +1 -0
  155. package/esm/dist/src/LoadedPermissions.d.ts +32 -0
  156. package/esm/dist/src/LoadedPermissions.d.ts.map +1 -0
  157. package/esm/dist/src/LoadedPermissions.js +226 -0
  158. package/esm/dist/src/LoadedPermissions.js.map +1 -0
  159. package/esm/dist/src/MemberResponsibility.d.ts +2 -1
  160. package/esm/dist/src/MemberResponsibility.d.ts.map +1 -1
  161. package/esm/dist/src/MemberResponsibility.js +4 -1
  162. package/esm/dist/src/MemberResponsibility.js.map +1 -1
  163. package/esm/dist/src/Organization.d.ts +2 -3
  164. package/esm/dist/src/Organization.d.ts.map +1 -1
  165. package/esm/dist/src/Organization.js.map +1 -1
  166. package/esm/dist/src/OrganizationMetaData.d.ts +2 -2
  167. package/esm/dist/src/OrganizationMetaData.d.ts.map +1 -1
  168. package/esm/dist/src/OrganizationMetaData.js +2 -2
  169. package/esm/dist/src/OrganizationMetaData.js.map +1 -1
  170. package/esm/dist/src/OrganizationPrivateMetaData.d.ts +1 -1
  171. package/esm/dist/src/OrganizationPrivateMetaData.d.ts.map +1 -1
  172. package/esm/dist/src/OrganizationPrivateMetaData.js +1 -1
  173. package/esm/dist/src/OrganizationPrivateMetaData.js.map +1 -1
  174. package/esm/dist/src/PermissionLevel.d.ts +18 -0
  175. package/esm/dist/src/PermissionLevel.d.ts.map +1 -0
  176. package/esm/dist/src/PermissionLevel.js +57 -0
  177. package/esm/dist/src/PermissionLevel.js.map +1 -0
  178. package/esm/dist/src/PermissionRole.d.ts +34 -0
  179. package/esm/dist/src/PermissionRole.d.ts.map +1 -0
  180. package/esm/dist/src/PermissionRole.js +206 -0
  181. package/esm/dist/src/PermissionRole.js.map +1 -0
  182. package/esm/dist/src/Permissions.d.ts +7 -159
  183. package/esm/dist/src/Permissions.d.ts.map +1 -1
  184. package/esm/dist/src/Permissions.js +7 -752
  185. package/esm/dist/src/Permissions.js.map +1 -1
  186. package/esm/dist/src/PermissionsByRole.d.ts +24 -0
  187. package/esm/dist/src/PermissionsByRole.d.ts.map +1 -0
  188. package/esm/dist/src/PermissionsByRole.js +93 -0
  189. package/esm/dist/src/PermissionsByRole.js.map +1 -0
  190. package/esm/dist/src/PermissionsResourceType.d.ts +12 -0
  191. package/esm/dist/src/PermissionsResourceType.d.ts.map +1 -0
  192. package/esm/dist/src/PermissionsResourceType.js +21 -0
  193. package/esm/dist/src/PermissionsResourceType.js.map +1 -0
  194. package/esm/dist/src/Platform.d.ts +14 -1
  195. package/esm/dist/src/Platform.d.ts.map +1 -1
  196. package/esm/dist/src/Platform.js +44 -2
  197. package/esm/dist/src/Platform.js.map +1 -1
  198. package/esm/dist/src/RegistrationPeriod.d.ts +3 -2
  199. package/esm/dist/src/RegistrationPeriod.d.ts.map +1 -1
  200. package/esm/dist/src/RegistrationPeriod.js +45 -2
  201. package/esm/dist/src/RegistrationPeriod.js.map +1 -1
  202. package/esm/dist/src/ResourcePermissions.d.ts +29 -0
  203. package/esm/dist/src/ResourcePermissions.d.ts.map +1 -0
  204. package/esm/dist/src/ResourcePermissions.js +73 -0
  205. package/esm/dist/src/ResourcePermissions.js.map +1 -0
  206. package/esm/dist/src/SetupSteps.d.ts +4 -2
  207. package/esm/dist/src/SetupSteps.d.ts.map +1 -1
  208. package/esm/dist/src/SetupSteps.js +2 -0
  209. package/esm/dist/src/SetupSteps.js.map +1 -1
  210. package/esm/dist/src/UserPermissions.d.ts +3 -1
  211. package/esm/dist/src/UserPermissions.d.ts.map +1 -1
  212. package/esm/dist/src/UserPermissions.js +4 -1
  213. package/esm/dist/src/UserPermissions.js.map +1 -1
  214. package/esm/dist/src/Version.d.ts +1 -1
  215. package/esm/dist/src/Version.js +1 -1
  216. package/esm/dist/src/email/EmailTemplate.d.ts +2 -1
  217. package/esm/dist/src/email/EmailTemplate.d.ts.map +1 -1
  218. package/esm/dist/src/email/EmailTemplate.js +16 -8
  219. package/esm/dist/src/email/EmailTemplate.js.map +1 -1
  220. package/esm/dist/src/members/Member.d.ts +1 -1
  221. package/esm/dist/src/members/MemberResponsibilityRecord.d.ts +5 -1
  222. package/esm/dist/src/members/MemberResponsibilityRecord.d.ts.map +1 -1
  223. package/esm/dist/src/members/MemberResponsibilityRecord.js +18 -8
  224. package/esm/dist/src/members/MemberResponsibilityRecord.js.map +1 -1
  225. package/esm/dist/src/members/MemberWithRegistrationsBlob.d.ts +1 -1
  226. package/esm/dist/src/members/MemberWithRegistrationsBlob.d.ts.map +1 -1
  227. package/esm/dist/src/members/MemberWithRegistrationsBlob.js +1 -1
  228. package/esm/dist/src/members/MemberWithRegistrationsBlob.js.map +1 -1
  229. package/esm/dist/src/members/OrganizationRecordsConfiguration.d.ts +1 -1
  230. package/esm/dist/src/members/OrganizationRecordsConfiguration.d.ts.map +1 -1
  231. package/esm/dist/src/members/OrganizationRecordsConfiguration.js +2 -2
  232. package/esm/dist/src/members/OrganizationRecordsConfiguration.js.map +1 -1
  233. package/esm/dist/src/members/PlatformMember.d.ts +4 -3
  234. package/esm/dist/src/members/PlatformMember.d.ts.map +1 -1
  235. package/esm/dist/src/members/PlatformMember.js +6 -22
  236. package/esm/dist/src/members/PlatformMember.js.map +1 -1
  237. package/esm/dist/src/members/checkout/RegisterCart.d.ts +2 -2
  238. package/esm/dist/src/members/checkout/RegisterCart.d.ts.map +1 -1
  239. package/esm/dist/src/members/checkout/RegisterCart.js +33 -3
  240. package/esm/dist/src/members/checkout/RegisterCart.js.map +1 -1
  241. package/esm/dist/src/members/checkout/RegisterCheckout.d.ts +1 -0
  242. package/esm/dist/src/members/checkout/RegisterCheckout.d.ts.map +1 -1
  243. package/esm/dist/src/members/checkout/RegisterCheckout.js +5 -1
  244. package/esm/dist/src/members/checkout/RegisterCheckout.js.map +1 -1
  245. package/esm/dist/src/members/checkout/RegisterItem.d.ts +1 -0
  246. package/esm/dist/src/members/checkout/RegisterItem.d.ts.map +1 -1
  247. package/esm/dist/src/members/checkout/RegisterItem.js +23 -2
  248. package/esm/dist/src/members/checkout/RegisterItem.js.map +1 -1
  249. package/esm/dist/src/members/records/RecordAnswer.d.ts +1 -0
  250. package/esm/dist/src/members/records/RecordAnswer.d.ts.map +1 -1
  251. package/esm/dist/src/members/records/RecordAnswer.js +6 -0
  252. package/esm/dist/src/members/records/RecordAnswer.js.map +1 -1
  253. package/esm/dist/src/members/records/RecordSettings.d.ts +2 -3
  254. package/esm/dist/src/members/records/RecordSettings.d.ts.map +1 -1
  255. package/esm/dist/src/members/records/RecordSettings.js +0 -7
  256. package/esm/dist/src/members/records/RecordSettings.js.map +1 -1
  257. package/esm/dist/src/webshops/WebshopMetaData.d.ts +2 -2
  258. package/esm/dist/src/webshops/WebshopMetaData.d.ts.map +1 -1
  259. package/esm/dist/src/webshops/WebshopMetaData.js +1 -1
  260. package/esm/dist/src/webshops/WebshopMetaData.js.map +1 -1
  261. package/package.json +2 -2
@@ -0,0 +1,212 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PermissionRoleForResponsibility = exports.PermissionRoleDetailed = exports.PermissionRole = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const simple_encoding_1 = require("@simonbackx/simple-encoding");
6
+ const utility_1 = require("@stamhoofd/utility");
7
+ const uuid_1 = require("uuid");
8
+ const AccessRight_1 = require("./AccessRight");
9
+ const PermissionLevel_1 = require("./PermissionLevel");
10
+ const PermissionsResourceType_1 = require("./PermissionsResourceType");
11
+ const ResourcePermissions_1 = require("./ResourcePermissions");
12
+ class PermissionRole extends simple_encoding_1.AutoEncoder {
13
+ constructor() {
14
+ super(...arguments);
15
+ this.name = "";
16
+ }
17
+ }
18
+ exports.PermissionRole = PermissionRole;
19
+ tslib_1.__decorate([
20
+ (0, simple_encoding_1.field)({ decoder: simple_encoding_1.StringDecoder, defaultValue: () => (0, uuid_1.v4)() })
21
+ ], PermissionRole.prototype, "id", void 0);
22
+ tslib_1.__decorate([
23
+ (0, simple_encoding_1.field)({ decoder: simple_encoding_1.StringDecoder })
24
+ ], PermissionRole.prototype, "name", void 0);
25
+ class PermissionRoleDetailed extends PermissionRole {
26
+ constructor() {
27
+ super(...arguments);
28
+ /**
29
+ * Generic access to all resources
30
+ */
31
+ this.level = PermissionLevel_1.PermissionLevel.None;
32
+ this.accessRights = [];
33
+ this.resources = new Map();
34
+ this.legacyManagePayments = false;
35
+ this.legacyFinanceDirector = false;
36
+ this.legacyCreateWebshops = false;
37
+ }
38
+ getDescription() {
39
+ const stack = [];
40
+ if (this.level === PermissionLevel_1.PermissionLevel.Read) {
41
+ stack.push("alles lezen");
42
+ }
43
+ if (this.level === PermissionLevel_1.PermissionLevel.Write) {
44
+ stack.push("alles bewerken");
45
+ }
46
+ if (this.level === PermissionLevel_1.PermissionLevel.Full) {
47
+ stack.push("volledige toegang");
48
+ }
49
+ for (const right of this.accessRights) {
50
+ stack.push(AccessRight_1.AccessRightHelper.getDescription(right));
51
+ }
52
+ for (const [type, resources] of this.resources) {
53
+ let count = 0;
54
+ if (resources.has('')) {
55
+ stack.push("alle " + (0, PermissionsResourceType_1.getPermissionResourceTypeName)(type, true));
56
+ continue;
57
+ }
58
+ for (const resource of resources.values()) {
59
+ if (resource.hasAccess(PermissionLevel_1.PermissionLevel.Read) || resource.accessRights.length > 0) {
60
+ count += 1;
61
+ }
62
+ }
63
+ if (count > 0) {
64
+ stack.push(count + " " + (0, PermissionsResourceType_1.getPermissionResourceTypeName)(type, count > 1));
65
+ }
66
+ }
67
+ if (stack.length === 0) {
68
+ return "geen rechten";
69
+ }
70
+ return utility_1.Formatter.capitalizeFirstLetter(utility_1.Formatter.joinLast(stack, ', ', ' en '));
71
+ }
72
+ hasAccess(level) {
73
+ return (0, PermissionLevel_1.getPermissionLevelNumber)(this.level) >= (0, PermissionLevel_1.getPermissionLevelNumber)(level);
74
+ }
75
+ hasAccessRight(right) {
76
+ const gl = AccessRight_1.AccessRightHelper.autoGrantRightForLevel(right);
77
+ if ((gl && this.hasAccess(gl)) || this.accessRights.includes(right)) {
78
+ return true;
79
+ }
80
+ const autoInherit = AccessRight_1.AccessRightHelper.autoInheritFrom(right);
81
+ for (const r of autoInherit) {
82
+ if (this.hasAccessRight(r)) {
83
+ return true;
84
+ }
85
+ }
86
+ return false;
87
+ }
88
+ getResourcePermissions(type, id) {
89
+ const resource = this.resources.get(type);
90
+ if (!resource) {
91
+ return null;
92
+ }
93
+ const rInstance = resource.get(id);
94
+ const allInstance = resource.get('');
95
+ if (!rInstance) {
96
+ if (allInstance) {
97
+ return allInstance;
98
+ }
99
+ return null;
100
+ }
101
+ if (allInstance) {
102
+ return rInstance.merge(allInstance);
103
+ }
104
+ return rInstance;
105
+ }
106
+ getMergedResourcePermissions(type, id) {
107
+ var _a;
108
+ let base = this.getResourcePermissions(type, id);
109
+ if ((0, PermissionLevel_1.getPermissionLevelNumber)(this.level) > (0, PermissionLevel_1.getPermissionLevelNumber)((_a = base === null || base === void 0 ? void 0 : base.level) !== null && _a !== void 0 ? _a : PermissionLevel_1.PermissionLevel.None)) {
110
+ if (!base) {
111
+ base = ResourcePermissions_1.ResourcePermissions.create({ level: this.level });
112
+ }
113
+ base.level = this.level;
114
+ }
115
+ return base;
116
+ }
117
+ hasResourceAccess(type, id, level) {
118
+ var _a, _b;
119
+ if (this.hasAccess(level)) {
120
+ return true;
121
+ }
122
+ return (_b = (_a = this.getResourcePermissions(type, id)) === null || _a === void 0 ? void 0 : _a.hasAccess(level)) !== null && _b !== void 0 ? _b : false;
123
+ }
124
+ hasResourceAccessRight(type, id, right) {
125
+ var _a, _b;
126
+ if (this.hasAccessRight(right)) {
127
+ return true;
128
+ }
129
+ return (_b = (_a = this.getResourcePermissions(type, id)) === null || _a === void 0 ? void 0 : _a.hasAccessRight(right)) !== null && _b !== void 0 ? _b : false;
130
+ }
131
+ add(other) {
132
+ if ((0, PermissionLevel_1.getPermissionLevelNumber)(this.level) < (0, PermissionLevel_1.getPermissionLevelNumber)(other.level)) {
133
+ this.level = other.level;
134
+ }
135
+ for (const right of other.accessRights) {
136
+ if (!this.accessRights.includes(right)) {
137
+ this.accessRights.push(right);
138
+ }
139
+ }
140
+ for (const [type, r] of other.resources) {
141
+ for (const [id, resource] of r) {
142
+ if (!this.resources.has(type)) {
143
+ this.resources.set(type, new Map());
144
+ }
145
+ const current = this.resources.get(type).get(id);
146
+ if (!current) {
147
+ this.resources.get(type).set(id, resource);
148
+ }
149
+ else {
150
+ this.resources.get(type).set(id, current.merge(resource));
151
+ }
152
+ }
153
+ }
154
+ }
155
+ get isEmpty() {
156
+ return this.level === PermissionLevel_1.PermissionLevel.None && this.accessRights.length === 0 && this.resources.size === 0;
157
+ }
158
+ }
159
+ exports.PermissionRoleDetailed = PermissionRoleDetailed;
160
+ tslib_1.__decorate([
161
+ (0, simple_encoding_1.field)({ decoder: new simple_encoding_1.EnumDecoder(PermissionLevel_1.PermissionLevel), version: 201 })
162
+ ], PermissionRoleDetailed.prototype, "level", void 0);
163
+ tslib_1.__decorate([
164
+ (0, simple_encoding_1.field)({
165
+ decoder: new simple_encoding_1.ArrayDecoder(new simple_encoding_1.EnumDecoder(AccessRight_1.AccessRight)),
166
+ version: 246,
167
+ upgrade: function () {
168
+ const base = [];
169
+ if (this.legacyManagePayments) {
170
+ base.push(AccessRight_1.AccessRight.OrganizationManagePayments);
171
+ }
172
+ if (this.legacyFinanceDirector) {
173
+ base.push(AccessRight_1.AccessRight.OrganizationFinanceDirector);
174
+ }
175
+ if (this.legacyCreateWebshops) {
176
+ base.push(AccessRight_1.AccessRight.OrganizationCreateWebshops);
177
+ }
178
+ return base;
179
+ }
180
+ })
181
+ ], PermissionRoleDetailed.prototype, "accessRights", void 0);
182
+ tslib_1.__decorate([
183
+ (0, simple_encoding_1.field)({
184
+ decoder: new simple_encoding_1.MapDecoder(new simple_encoding_1.EnumDecoder(PermissionsResourceType_1.PermissionsResourceType), new simple_encoding_1.MapDecoder(
185
+ // ID
186
+ simple_encoding_1.StringDecoder, ResourcePermissions_1.ResourcePermissions)),
187
+ version: 248
188
+ })
189
+ ], PermissionRoleDetailed.prototype, "resources", void 0);
190
+ tslib_1.__decorate([
191
+ (0, simple_encoding_1.field)({ decoder: simple_encoding_1.BooleanDecoder, field: 'managePayments', optional: true })
192
+ ], PermissionRoleDetailed.prototype, "legacyManagePayments", void 0);
193
+ tslib_1.__decorate([
194
+ (0, simple_encoding_1.field)({ decoder: simple_encoding_1.BooleanDecoder, version: 199, field: 'financeDirector', optional: true })
195
+ ], PermissionRoleDetailed.prototype, "legacyFinanceDirector", void 0);
196
+ tslib_1.__decorate([
197
+ (0, simple_encoding_1.field)({ decoder: simple_encoding_1.BooleanDecoder, field: 'createWebshops', optional: true })
198
+ ], PermissionRoleDetailed.prototype, "legacyCreateWebshops", void 0);
199
+ class PermissionRoleForResponsibility extends PermissionRoleDetailed {
200
+ constructor() {
201
+ super(...arguments);
202
+ this.responsibilityGroupId = null;
203
+ }
204
+ }
205
+ exports.PermissionRoleForResponsibility = PermissionRoleForResponsibility;
206
+ tslib_1.__decorate([
207
+ (0, simple_encoding_1.field)({ decoder: simple_encoding_1.StringDecoder })
208
+ ], PermissionRoleForResponsibility.prototype, "responsibilityId", void 0);
209
+ tslib_1.__decorate([
210
+ (0, simple_encoding_1.field)({ decoder: simple_encoding_1.StringDecoder, nullable: true })
211
+ ], PermissionRoleForResponsibility.prototype, "responsibilityGroupId", void 0);
212
+ //# sourceMappingURL=PermissionRole.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PermissionRole.js","sourceRoot":"","sources":["../../src/PermissionRole.ts"],"names":[],"mappings":";;;;AAAA,iEAAuI;AACvI,gDAA+C;AAC/C,+BAAoC;AACpC,+CAA+D;AAC/D,uDAA8E;AAC9E,uEAAmG;AACnG,+DAA4D;AAE5D,MAAa,cAAe,SAAQ,6BAAW;IAA/C;;QAKI,SAAI,GAAG,EAAE,CAAC;IACd,CAAC;CAAA;AAND,wCAMC;AAJG;IADC,IAAA,uBAAK,EAAC,EAAE,OAAO,EAAE,+BAAa,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,IAAA,SAAM,GAAE,EAAE,CAAC;0CACrD;AAGX;IADC,IAAA,uBAAK,EAAC,EAAE,OAAO,EAAE,+BAAa,EAAE,CAAC;4CACxB;AAGd,MAAa,sBAAuB,SAAQ,cAAc;IAA1D;;QACI;;WAEG;QAEH,UAAK,GAAoB,iCAAe,CAAC,IAAI,CAAA;QAqB7C,iBAAY,GAAkB,EAAE,CAAA;QAahC,cAAS,GAAmE,IAAI,GAAG,EAAE,CAAA;QAGrF,yBAAoB,GAAG,KAAK,CAAA;QAG5B,0BAAqB,GAAG,KAAK,CAAA;QAG7B,yBAAoB,GAAG,KAAK,CAAA;IAiJhC,CAAC;IA/IG,cAAc;QACV,MAAM,KAAK,GAAa,EAAE,CAAA;QAC1B,IAAI,IAAI,CAAC,KAAK,KAAK,iCAAe,CAAC,IAAI,EAAE,CAAC;YACtC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QAC7B,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,KAAK,iCAAe,CAAC,KAAK,EAAE,CAAC;YACvC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;QAChC,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,KAAK,iCAAe,CAAC,IAAI,EAAE,CAAC;YACtC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;QACnC,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,+BAAiB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAA;QACvD,CAAC;QAED,KAAK,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAC7C,IAAI,KAAK,GAAG,CAAC,CAAA;YAEb,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBACpB,KAAK,CAAC,IAAI,CAAC,OAAO,GAAC,IAAA,uDAA6B,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;gBAC7D,SAAS;YACb,CAAC;YAED,KAAK,MAAM,QAAQ,IAAI,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;gBACxC,IAAI,QAAQ,CAAC,SAAS,CAAC,iCAAe,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC/E,KAAK,IAAI,CAAC,CAAA;gBACd,CAAC;YACL,CAAC;YAED,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACZ,KAAK,CAAC,IAAI,CAAC,KAAK,GAAC,GAAG,GAAC,IAAA,uDAA6B,EAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAA;YACxE,CAAC;QACL,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO,cAAc,CAAA;QACzB,CAAC;QAED,OAAO,mBAAS,CAAC,qBAAqB,CAAC,mBAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;IACnF,CAAC;IAED,SAAS,CAAC,KAAsB;QAC5B,OAAO,IAAA,0CAAwB,EAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAA,0CAAwB,EAAC,KAAK,CAAC,CAAA;IAClF,CAAC;IAED,cAAc,CAAC,KAAkB;QAC7B,MAAM,EAAE,GAAG,+BAAiB,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAA;QAC1D,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAClE,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,WAAW,GAAG,+BAAiB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;QAC5D,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;YAC1B,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzB,OAAO,IAAI,CAAA;YACf,CAAC;QACL,CAAC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,sBAAsB,CAAC,IAA6B,EAAE,EAAU;QAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACzC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,OAAO,IAAI,CAAA;QACf,CAAC;QACD,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAClC,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAEpC,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,IAAI,WAAW,EAAE,CAAC;gBACd,OAAO,WAAW,CAAA;YACtB,CAAC;YACD,OAAO,IAAI,CAAA;QACf,CAAC;QAED,IAAI,WAAW,EAAE,CAAC;YACd,OAAO,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QACvC,CAAC;QAED,OAAO,SAAS,CAAA;IACpB,CAAC;IAED,4BAA4B,CAAC,IAA6B,EAAE,EAAU;;QAClE,IAAI,IAAI,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;QAEhD,IAAI,IAAA,0CAAwB,EAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAA,0CAAwB,EAAC,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,mCAAI,iCAAe,CAAC,IAAI,CAAC,EAAE,CAAC;YACvG,IAAI,CAAC,IAAI,EAAE,CAAC;gBACR,IAAI,GAAG,yCAAmB,CAAC,MAAM,CAAC,EAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAC,CAAC,CAAA;YAC1D,CAAC;YACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QAC3B,CAAC;QAED,OAAO,IAAI,CAAA;IACf,CAAC;IAED,iBAAiB,CAAC,IAA6B,EAAE,EAAU,EAAE,KAAsB;;QAC/E,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,OAAO,MAAA,MAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,EAAE,CAAC,0CAAE,SAAS,CAAC,KAAK,CAAC,mCAAI,KAAK,CAAA;IAC3E,CAAC;IAED,sBAAsB,CAAC,IAA6B,EAAE,EAAU,EAAE,KAAkB;;QAChF,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAA;QACf,CAAC;QAED,OAAQ,MAAA,MAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,EAAE,CAAC,0CAAE,cAAc,CAAC,KAAK,CAAC,mCAAI,KAAK,CAAA;IACjF,CAAC;IAED,GAAG,CAAC,KAA6B;QAC7B,IAAI,IAAA,0CAAwB,EAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAA,0CAAwB,EAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/E,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAC7B,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YACrC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACjC,CAAC;QACL,CAAC;QAED,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACtC,KAAK,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,CAAC,CAAA;gBACvC,CAAC;gBAED,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;gBACjD,IAAI,CAAC,OAAO,EAAE,CAAC;oBACX,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;gBAC/C,CAAC;qBAAM,CAAC;oBACJ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAA;gBAC9D,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,KAAK,KAAK,iCAAe,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,CAAA;IAC7G,CAAC;CACJ;AAjMD,wDAiMC;AA5LG;IADC,IAAA,uBAAK,EAAC,EAAE,OAAO,EAAE,IAAI,6BAAW,CAAC,iCAAe,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;qDACtB;AAqB7C;IAnBC,IAAA,uBAAK,EAAC;QACH,OAAO,EAAE,IAAI,8BAAY,CAAC,IAAI,6BAAW,CAAC,yBAAW,CAAC,CAAC;QACvD,OAAO,EAAE,GAAG;QACZ,OAAO,EAAE;YACL,MAAM,IAAI,GAAkB,EAAE,CAAA;YAC9B,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC5B,IAAI,CAAC,IAAI,CAAC,yBAAW,CAAC,0BAA0B,CAAC,CAAC;YACtD,CAAC;YAED,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAC7B,IAAI,CAAC,IAAI,CAAC,yBAAW,CAAC,2BAA2B,CAAC,CAAC;YACvD,CAAC;YAED,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC5B,IAAI,CAAC,IAAI,CAAC,yBAAW,CAAC,0BAA0B,CAAC,CAAC;YACtD,CAAC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC;KACJ,CAAC;4DAC8B;AAahC;IAXC,IAAA,uBAAK,EAAC;QACH,OAAO,EAAE,IAAI,4BAAU,CACnB,IAAI,6BAAW,CAAC,iDAAuB,CAAC,EACxC,IAAI,4BAAU;QACV,KAAK;QACL,+BAAa,EACb,yCAAmB,CACtB,CACJ;QACD,OAAO,EAAE,GAAG;KACf,CAAC;yDACmF;AAGrF;IADC,IAAA,uBAAK,EAAC,EAAE,OAAO,EAAE,gCAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;oEAChD;AAG5B;IADC,IAAA,uBAAK,EAAC,EAAE,OAAO,EAAE,gCAAc,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;qEAC9D;AAG7B;IADC,IAAA,uBAAK,EAAC,EAAE,OAAO,EAAE,gCAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;oEAChD;AAmJhC,MAAa,+BAAgC,SAAQ,sBAAsB;IAA3E;;QAKI,0BAAqB,GAAgB,IAAI,CAAA;IAC7C,CAAC;CAAA;AAND,0EAMC;AAJG;IADC,IAAA,uBAAK,EAAC,EAAE,OAAO,EAAE,+BAAa,EAAE,CAAC;yEACV;AAGxB;IADC,IAAA,uBAAK,EAAC,EAAE,OAAO,EAAE,+BAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8EACT"}
@@ -1,137 +1,9 @@
1
- import { AutoEncoder, AutoEncoderPatchType } from '@simonbackx/simple-encoding';
2
- import { MemberResponsibility } from './MemberResponsibility';
3
- import { MemberResponsibilityRecord } from './members/MemberResponsibilityRecord';
4
- /**
5
- * PermissionLevels are used to grant permissions to specific resources or system wide
6
- */
7
- export declare enum PermissionLevel {
8
- /** No access */
9
- None = "None",
10
- /** Read all data, but not allowed to write */
11
- Read = "Read",
12
- /** Read, write, add, delete child data, but not allowed to modify settings */
13
- Write = "Write",
14
- /** Full access */
15
- Full = "Full"
16
- }
17
- /**
18
- * More granular access rights to specific things in the system
19
- */
20
- export declare enum AccessRight {
21
- /**
22
- * Allows the user to log in as a full-access admin to a specific organization
23
- */
24
- PlatformLoginAs = "PlatformLoginAs",
25
- OrganizationCreateWebshops = "OrganizationCreateWebshops",
26
- OrganizationManagePayments = "OrganizationManagePayments",
27
- OrganizationFinanceDirector = "OrganizationFinanceDirector",
28
- OrganizationCreateGroups = "OrganizationCreateGroups",
29
- MemberReadFinancialData = "MemberReadFinancialData",
30
- MemberWriteFinancialData = "MemberWriteFinancialData",
31
- WebshopScanTickets = "WebshopScanTickets"
32
- }
33
- export declare class AccessRightHelper {
34
- static getName(right: AccessRight): string;
35
- static getNameShort(right: AccessRight): string;
36
- static getDescription(right: AccessRight): string;
37
- static getLongDescription(right: AccessRight): string | null;
38
- /**
39
- * If a user has a certain permission level, automatically grant the specific access right
40
- * By default only full permissions gives all access rights, but you can tweak it:
41
- * E.g., give webshop scan rights if you also have write access to that webshop
42
- */
43
- static autoGrantRightForLevel(right: AccessRight): PermissionLevel | null;
44
- /**
45
- * Automatically grant a user access rights if they have a certain right
46
- */
47
- static autoInheritFrom(right: AccessRight): AccessRight[];
48
- }
49
- export declare function getPermissionLevelNumber(level: PermissionLevel): number;
50
- export declare function maximumPermissionlevel(...levels: PermissionLevel[]): PermissionLevel;
51
- export declare function minimumPermissionLevel(...levels: PermissionLevel[]): PermissionLevel;
52
- export declare function getPermissionLevelName(level: PermissionLevel): string;
53
- export declare class PermissionRole extends AutoEncoder {
54
- id: string;
55
- name: string;
56
- }
57
- /**
58
- * More granular access rights to specific things in the system
59
- */
60
- export declare enum PermissionsResourceType {
61
- Webshops = "Webshops",
62
- Groups = "Groups",
63
- GroupCategories = "GroupCategories",
64
- OrganizationTags = "OrganizationTags",
65
- RecordCategories = "RecordCategory"
66
- }
67
- export declare function getPermissionResourceTypeName(type: PermissionsResourceType, plural?: boolean): string;
68
- /**
69
- * More granular access rights to specific things in the system
70
- */
71
- export declare class ResourcePermissions extends AutoEncoder {
72
- /**
73
- * This is a cache so we can display the role description without fetching all resources
74
- */
75
- resourceName: string;
76
- /**
77
- * Setting it to full gives all possible permissions for the resource
78
- * Read/Write depends on resource
79
- */
80
- level: PermissionLevel;
81
- /**
82
- * More granular permissions related to this resource
83
- */
84
- accessRights: AccessRight[];
85
- hasAccess(level: PermissionLevel): boolean;
86
- hasAccessRight(right: AccessRight): boolean;
87
- createInsertPatch(type: PermissionsResourceType, resourceId: string, roleOrPermissions: PermissionRoleDetailed): AutoEncoderPatchType<PermissionRoleDetailed>;
88
- createInsertPatch(type: PermissionsResourceType, resourceId: string, roleOrPermissions: Permissions): AutoEncoderPatchType<Permissions>;
89
- merge(other: ResourcePermissions): ResourcePermissions;
90
- }
91
- export declare class PermissionRoleDetailed extends PermissionRole {
92
- /**
93
- * Generic access to all resources
94
- */
95
- level: PermissionLevel;
96
- accessRights: AccessRight[];
97
- resources: Map<PermissionsResourceType, Map<string, ResourcePermissions>>;
98
- legacyManagePayments: boolean;
99
- legacyFinanceDirector: boolean;
100
- legacyCreateWebshops: boolean;
101
- getDescription(): string;
102
- hasAccess(level: PermissionLevel): boolean;
103
- hasAccessRight(right: AccessRight): boolean;
104
- getResourcePermissions(type: PermissionsResourceType, id: string): ResourcePermissions | null;
105
- getMergedResourcePermissions(type: PermissionsResourceType, id: string): ResourcePermissions | null;
106
- hasResourceAccess(type: PermissionsResourceType, id: string, level: PermissionLevel): boolean;
107
- hasResourceAccessRight(type: PermissionsResourceType, id: string, right: AccessRight): boolean;
108
- add(other: PermissionRoleDetailed): void;
109
- get isEmpty(): boolean;
110
- }
111
- export declare class PermissionRoleForResponsibility extends PermissionRoleDetailed {
112
- responsibilityId: string;
113
- responsibilityGroupId: string | null;
114
- }
115
- /**
116
- * @deprecated
117
- * Use resource types
118
- * Give access to a given resouce based by the roles of a user
119
- */
120
- export declare class PermissionsByRole extends AutoEncoder {
121
- read: PermissionRole[];
122
- write: PermissionRole[];
123
- full: PermissionRole[];
124
- getPermissionLevel(permissions: LoadedPermissions): PermissionLevel;
125
- /**
126
- * Whetever a given user has access to the members in this group.
127
- */
128
- getRolePermissionLevel(role: PermissionRole): PermissionLevel;
129
- hasAccess(permissions: LoadedPermissions | undefined | null, level: PermissionLevel): boolean;
130
- roleHasAccess(role: PermissionRole, level?: PermissionLevel): boolean;
131
- hasFullAccess(permissions: LoadedPermissions | undefined | null): boolean;
132
- hasWriteAccess(permissions: LoadedPermissions | undefined | null): boolean;
133
- hasReadAccess(permissions: LoadedPermissions | undefined | null): boolean;
134
- }
1
+ import { AutoEncoder } from '@simonbackx/simple-encoding';
2
+ import { MemberResponsibilityRecordBase } from './members/MemberResponsibilityRecord';
3
+ import { PermissionLevel } from './PermissionLevel';
4
+ import { PermissionRole } from './PermissionRole';
5
+ import { PermissionsResourceType } from './PermissionsResourceType';
6
+ import { ResourcePermissions } from './ResourcePermissions';
135
7
  export declare class Permissions extends AutoEncoder {
136
8
  /**
137
9
  * Automatically have all permissions (e.g. when someone created a new group)
@@ -139,7 +11,7 @@ export declare class Permissions extends AutoEncoder {
139
11
  */
140
12
  level: PermissionLevel;
141
13
  roles: PermissionRole[];
142
- responsibilities: MemberResponsibilityRecord[];
14
+ responsibilities: MemberResponsibilityRecordBase[];
143
15
  /**
144
16
  * Mostly for temporary access
145
17
  */
@@ -148,28 +20,4 @@ export declare class Permissions extends AutoEncoder {
148
20
  add(other: Permissions): void;
149
21
  get isEmpty(): boolean;
150
22
  }
151
- /**
152
- * Identical to Permissions but with detailed roles, loaded from the organization or platform
153
- */
154
- export declare class LoadedPermissions {
155
- level: PermissionLevel;
156
- roles: PermissionRoleDetailed[];
157
- resources: Map<PermissionsResourceType, Map<string, ResourcePermissions>>;
158
- constructor(data: Partial<LoadedPermissions>);
159
- static create(data: Partial<LoadedPermissions>): LoadedPermissions;
160
- static buildRoleForResponsibility(groupId: string | null, responsibilityData: MemberResponsibility, inheritedResponsibilityRoles: PermissionRoleForResponsibility[]): PermissionRoleForResponsibility;
161
- static from(permissions: Permissions, allRoles: PermissionRoleDetailed[], inheritedResponsibilityRoles: PermissionRoleForResponsibility[], allResponsibilites: MemberResponsibility[]): LoadedPermissions;
162
- getResourcePermissions(type: PermissionsResourceType, id: string): ResourcePermissions | null;
163
- getMergedResourcePermissions(type: PermissionsResourceType, id: string): ResourcePermissions | null;
164
- hasRole(role: PermissionRole): boolean;
165
- hasAccess(level: PermissionLevel): boolean;
166
- hasResourceAccess(type: PermissionsResourceType, id: string, level: PermissionLevel): boolean;
167
- hasResourceAccessRight(type: PermissionsResourceType, id: string, right: AccessRight): boolean;
168
- hasReadAccess(): boolean;
169
- hasWriteAccess(): boolean;
170
- hasFullAccess(): boolean;
171
- hasAccessRight(right: AccessRight): boolean;
172
- merge(other: LoadedPermissions): LoadedPermissions;
173
- get isEmpty(): boolean;
174
- }
175
23
  //# sourceMappingURL=Permissions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Permissions.d.ts","sourceRoot":"","sources":["../../src/Permissions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Permissions.d.ts","sourceRoot":"","sources":["../../src/Permissions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,WAAW,EAAiD,MAAM,6BAA6B,CAAC;AAEvH,OAAO,EAAE,8BAA8B,EAAE,MAAM,sCAAsC,CAAC;AACtF,OAAO,EAA4B,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,qBAAa,WAAY,SAAQ,WAAW;IACxC;;;OAGG;IAEH,KAAK,EAAE,eAAe,CAAuB;IAG7C,KAAK,EAAE,cAAc,EAAE,CAAK;IAG5B,gBAAgB,EAAE,8BAA8B,EAAE,CAAK;IAEvD;;OAEG;IAYH,SAAS,EAAE,GAAG,CAAC,uBAAuB,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAY;IAErF,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO;IAItC,GAAG,CAAC,KAAK,EAAE,WAAW;IAkBtB,IAAI,OAAO,YAEV;CACJ"}