@stamhoofd/structures 2.23.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 (245) 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 +1 -1
  37. package/dist/src/OrganizationPrivateMetaData.d.ts +1 -1
  38. package/dist/src/OrganizationPrivateMetaData.d.ts.map +1 -1
  39. package/dist/src/OrganizationPrivateMetaData.js +3 -3
  40. package/dist/src/OrganizationPrivateMetaData.js.map +1 -1
  41. package/dist/src/PermissionLevel.d.ts +18 -0
  42. package/dist/src/PermissionLevel.d.ts.map +1 -0
  43. package/dist/src/PermissionLevel.js +64 -0
  44. package/dist/src/PermissionLevel.js.map +1 -0
  45. package/dist/src/PermissionRole.d.ts +34 -0
  46. package/dist/src/PermissionRole.d.ts.map +1 -0
  47. package/dist/src/PermissionRole.js +212 -0
  48. package/dist/src/PermissionRole.js.map +1 -0
  49. package/dist/src/Permissions.d.ts +7 -159
  50. package/dist/src/Permissions.d.ts.map +1 -1
  51. package/dist/src/Permissions.js +13 -770
  52. package/dist/src/Permissions.js.map +1 -1
  53. package/dist/src/PermissionsByRole.d.ts +24 -0
  54. package/dist/src/PermissionsByRole.d.ts.map +1 -0
  55. package/dist/src/PermissionsByRole.js +97 -0
  56. package/dist/src/PermissionsByRole.js.map +1 -0
  57. package/dist/src/PermissionsResourceType.d.ts +12 -0
  58. package/dist/src/PermissionsResourceType.d.ts.map +1 -0
  59. package/dist/src/PermissionsResourceType.js +25 -0
  60. package/dist/src/PermissionsResourceType.js.map +1 -0
  61. package/dist/src/Platform.d.ts +2 -2
  62. package/dist/src/Platform.d.ts.map +1 -1
  63. package/dist/src/Platform.js +3 -3
  64. package/dist/src/Platform.js.map +1 -1
  65. package/dist/src/RegistrationPeriod.d.ts +2 -2
  66. package/dist/src/RegistrationPeriod.d.ts.map +1 -1
  67. package/dist/src/RegistrationPeriod.js +41 -1
  68. package/dist/src/RegistrationPeriod.js.map +1 -1
  69. package/dist/src/ResourcePermissions.d.ts +29 -0
  70. package/dist/src/ResourcePermissions.d.ts.map +1 -0
  71. package/dist/src/ResourcePermissions.js +77 -0
  72. package/dist/src/ResourcePermissions.js.map +1 -0
  73. package/dist/src/SetupSteps.d.ts +1 -1
  74. package/dist/src/UserPermissions.d.ts +3 -1
  75. package/dist/src/UserPermissions.d.ts.map +1 -1
  76. package/dist/src/UserPermissions.js +9 -6
  77. package/dist/src/UserPermissions.js.map +1 -1
  78. package/dist/src/Version.d.ts +1 -1
  79. package/dist/src/Version.js +1 -1
  80. package/dist/src/email/EmailTemplate.js +8 -8
  81. package/dist/src/email/EmailTemplate.js.map +1 -1
  82. package/dist/src/members/Member.d.ts +1 -1
  83. package/dist/src/members/MemberResponsibilityRecord.d.ts +5 -1
  84. package/dist/src/members/MemberResponsibilityRecord.d.ts.map +1 -1
  85. package/dist/src/members/MemberResponsibilityRecord.js +21 -10
  86. package/dist/src/members/MemberResponsibilityRecord.js.map +1 -1
  87. package/dist/src/members/MemberWithRegistrationsBlob.d.ts +1 -1
  88. package/dist/src/members/MemberWithRegistrationsBlob.d.ts.map +1 -1
  89. package/dist/src/members/MemberWithRegistrationsBlob.js +1 -1
  90. package/dist/src/members/MemberWithRegistrationsBlob.js.map +1 -1
  91. package/dist/src/members/OrganizationRecordsConfiguration.d.ts +1 -1
  92. package/dist/src/members/OrganizationRecordsConfiguration.d.ts.map +1 -1
  93. package/dist/src/members/OrganizationRecordsConfiguration.js +4 -4
  94. package/dist/src/members/OrganizationRecordsConfiguration.js.map +1 -1
  95. package/dist/src/members/PlatformMember.d.ts +4 -3
  96. package/dist/src/members/PlatformMember.d.ts.map +1 -1
  97. package/dist/src/members/PlatformMember.js +10 -26
  98. package/dist/src/members/PlatformMember.js.map +1 -1
  99. package/dist/src/members/checkout/RegisterCart.d.ts +2 -2
  100. package/dist/src/members/checkout/RegisterCart.d.ts.map +1 -1
  101. package/dist/src/members/checkout/RegisterCart.js +33 -3
  102. package/dist/src/members/checkout/RegisterCart.js.map +1 -1
  103. package/dist/src/members/checkout/RegisterCheckout.d.ts +1 -0
  104. package/dist/src/members/checkout/RegisterCheckout.d.ts.map +1 -1
  105. package/dist/src/members/checkout/RegisterCheckout.js +5 -1
  106. package/dist/src/members/checkout/RegisterCheckout.js.map +1 -1
  107. package/dist/src/members/checkout/RegisterItem.d.ts +1 -0
  108. package/dist/src/members/checkout/RegisterItem.d.ts.map +1 -1
  109. package/dist/src/members/checkout/RegisterItem.js +27 -6
  110. package/dist/src/members/checkout/RegisterItem.js.map +1 -1
  111. package/dist/src/members/records/RecordAnswer.d.ts +1 -0
  112. package/dist/src/members/records/RecordAnswer.d.ts.map +1 -1
  113. package/dist/src/members/records/RecordAnswer.js +6 -0
  114. package/dist/src/members/records/RecordAnswer.js.map +1 -1
  115. package/dist/src/members/records/RecordSettings.d.ts +2 -3
  116. package/dist/src/members/records/RecordSettings.d.ts.map +1 -1
  117. package/dist/src/members/records/RecordSettings.js +0 -7
  118. package/dist/src/members/records/RecordSettings.js.map +1 -1
  119. package/dist/src/webshops/WebshopMetaData.d.ts +2 -2
  120. package/dist/src/webshops/WebshopMetaData.d.ts.map +1 -1
  121. package/dist/src/webshops/WebshopMetaData.js +5 -5
  122. package/dist/src/webshops/WebshopMetaData.js.map +1 -1
  123. package/esm/dist/index.d.ts +28 -20
  124. package/esm/dist/index.d.ts.map +1 -1
  125. package/esm/dist/index.js +28 -20
  126. package/esm/dist/index.js.map +1 -1
  127. package/esm/dist/src/AccessRight.d.ts +34 -0
  128. package/esm/dist/src/AccessRight.d.ts.map +1 -0
  129. package/esm/dist/src/AccessRight.js +100 -0
  130. package/esm/dist/src/AccessRight.js.map +1 -0
  131. package/esm/dist/src/Group.d.ts +9 -22
  132. package/esm/dist/src/Group.d.ts.map +1 -1
  133. package/esm/dist/src/Group.js +5 -20
  134. package/esm/dist/src/Group.js.map +1 -1
  135. package/esm/dist/src/GroupCategory.d.ts +5 -4
  136. package/esm/dist/src/GroupCategory.d.ts.map +1 -1
  137. package/esm/dist/src/GroupCategory.js +4 -3
  138. package/esm/dist/src/GroupCategory.js.map +1 -1
  139. package/esm/dist/src/GroupPrivateSettings.d.ts +1 -1
  140. package/esm/dist/src/GroupPrivateSettings.d.ts.map +1 -1
  141. package/esm/dist/src/GroupPrivateSettings.js +1 -1
  142. package/esm/dist/src/GroupPrivateSettings.js.map +1 -1
  143. package/esm/dist/src/GroupType.d.ts +15 -0
  144. package/esm/dist/src/GroupType.d.ts.map +1 -0
  145. package/esm/dist/src/GroupType.js +18 -0
  146. package/esm/dist/src/GroupType.js.map +1 -0
  147. package/esm/dist/src/LoadedPermissions.d.ts +32 -0
  148. package/esm/dist/src/LoadedPermissions.d.ts.map +1 -0
  149. package/esm/dist/src/LoadedPermissions.js +226 -0
  150. package/esm/dist/src/LoadedPermissions.js.map +1 -0
  151. package/esm/dist/src/MemberResponsibility.d.ts +2 -1
  152. package/esm/dist/src/MemberResponsibility.d.ts.map +1 -1
  153. package/esm/dist/src/MemberResponsibility.js +4 -1
  154. package/esm/dist/src/MemberResponsibility.js.map +1 -1
  155. package/esm/dist/src/Organization.d.ts +2 -3
  156. package/esm/dist/src/Organization.d.ts.map +1 -1
  157. package/esm/dist/src/Organization.js.map +1 -1
  158. package/esm/dist/src/OrganizationMetaData.d.ts +1 -1
  159. package/esm/dist/src/OrganizationPrivateMetaData.d.ts +1 -1
  160. package/esm/dist/src/OrganizationPrivateMetaData.d.ts.map +1 -1
  161. package/esm/dist/src/OrganizationPrivateMetaData.js +1 -1
  162. package/esm/dist/src/OrganizationPrivateMetaData.js.map +1 -1
  163. package/esm/dist/src/PermissionLevel.d.ts +18 -0
  164. package/esm/dist/src/PermissionLevel.d.ts.map +1 -0
  165. package/esm/dist/src/PermissionLevel.js +57 -0
  166. package/esm/dist/src/PermissionLevel.js.map +1 -0
  167. package/esm/dist/src/PermissionRole.d.ts +34 -0
  168. package/esm/dist/src/PermissionRole.d.ts.map +1 -0
  169. package/esm/dist/src/PermissionRole.js +206 -0
  170. package/esm/dist/src/PermissionRole.js.map +1 -0
  171. package/esm/dist/src/Permissions.d.ts +7 -159
  172. package/esm/dist/src/Permissions.d.ts.map +1 -1
  173. package/esm/dist/src/Permissions.js +7 -752
  174. package/esm/dist/src/Permissions.js.map +1 -1
  175. package/esm/dist/src/PermissionsByRole.d.ts +24 -0
  176. package/esm/dist/src/PermissionsByRole.d.ts.map +1 -0
  177. package/esm/dist/src/PermissionsByRole.js +93 -0
  178. package/esm/dist/src/PermissionsByRole.js.map +1 -0
  179. package/esm/dist/src/PermissionsResourceType.d.ts +12 -0
  180. package/esm/dist/src/PermissionsResourceType.d.ts.map +1 -0
  181. package/esm/dist/src/PermissionsResourceType.js +21 -0
  182. package/esm/dist/src/PermissionsResourceType.js.map +1 -0
  183. package/esm/dist/src/Platform.d.ts +2 -2
  184. package/esm/dist/src/Platform.d.ts.map +1 -1
  185. package/esm/dist/src/Platform.js +2 -2
  186. package/esm/dist/src/Platform.js.map +1 -1
  187. package/esm/dist/src/RegistrationPeriod.d.ts +2 -2
  188. package/esm/dist/src/RegistrationPeriod.d.ts.map +1 -1
  189. package/esm/dist/src/RegistrationPeriod.js +41 -1
  190. package/esm/dist/src/RegistrationPeriod.js.map +1 -1
  191. package/esm/dist/src/ResourcePermissions.d.ts +29 -0
  192. package/esm/dist/src/ResourcePermissions.d.ts.map +1 -0
  193. package/esm/dist/src/ResourcePermissions.js +73 -0
  194. package/esm/dist/src/ResourcePermissions.js.map +1 -0
  195. package/esm/dist/src/SetupSteps.d.ts +1 -1
  196. package/esm/dist/src/UserPermissions.d.ts +3 -1
  197. package/esm/dist/src/UserPermissions.d.ts.map +1 -1
  198. package/esm/dist/src/UserPermissions.js +4 -1
  199. package/esm/dist/src/UserPermissions.js.map +1 -1
  200. package/esm/dist/src/Version.d.ts +1 -1
  201. package/esm/dist/src/Version.js +1 -1
  202. package/esm/dist/src/email/EmailTemplate.js +8 -8
  203. package/esm/dist/src/email/EmailTemplate.js.map +1 -1
  204. package/esm/dist/src/members/Member.d.ts +1 -1
  205. package/esm/dist/src/members/MemberResponsibilityRecord.d.ts +5 -1
  206. package/esm/dist/src/members/MemberResponsibilityRecord.d.ts.map +1 -1
  207. package/esm/dist/src/members/MemberResponsibilityRecord.js +18 -8
  208. package/esm/dist/src/members/MemberResponsibilityRecord.js.map +1 -1
  209. package/esm/dist/src/members/MemberWithRegistrationsBlob.d.ts +1 -1
  210. package/esm/dist/src/members/MemberWithRegistrationsBlob.d.ts.map +1 -1
  211. package/esm/dist/src/members/MemberWithRegistrationsBlob.js +1 -1
  212. package/esm/dist/src/members/MemberWithRegistrationsBlob.js.map +1 -1
  213. package/esm/dist/src/members/OrganizationRecordsConfiguration.d.ts +1 -1
  214. package/esm/dist/src/members/OrganizationRecordsConfiguration.d.ts.map +1 -1
  215. package/esm/dist/src/members/OrganizationRecordsConfiguration.js +2 -2
  216. package/esm/dist/src/members/OrganizationRecordsConfiguration.js.map +1 -1
  217. package/esm/dist/src/members/PlatformMember.d.ts +4 -3
  218. package/esm/dist/src/members/PlatformMember.d.ts.map +1 -1
  219. package/esm/dist/src/members/PlatformMember.js +6 -22
  220. package/esm/dist/src/members/PlatformMember.js.map +1 -1
  221. package/esm/dist/src/members/checkout/RegisterCart.d.ts +2 -2
  222. package/esm/dist/src/members/checkout/RegisterCart.d.ts.map +1 -1
  223. package/esm/dist/src/members/checkout/RegisterCart.js +33 -3
  224. package/esm/dist/src/members/checkout/RegisterCart.js.map +1 -1
  225. package/esm/dist/src/members/checkout/RegisterCheckout.d.ts +1 -0
  226. package/esm/dist/src/members/checkout/RegisterCheckout.d.ts.map +1 -1
  227. package/esm/dist/src/members/checkout/RegisterCheckout.js +5 -1
  228. package/esm/dist/src/members/checkout/RegisterCheckout.js.map +1 -1
  229. package/esm/dist/src/members/checkout/RegisterItem.d.ts +1 -0
  230. package/esm/dist/src/members/checkout/RegisterItem.d.ts.map +1 -1
  231. package/esm/dist/src/members/checkout/RegisterItem.js +23 -2
  232. package/esm/dist/src/members/checkout/RegisterItem.js.map +1 -1
  233. package/esm/dist/src/members/records/RecordAnswer.d.ts +1 -0
  234. package/esm/dist/src/members/records/RecordAnswer.d.ts.map +1 -1
  235. package/esm/dist/src/members/records/RecordAnswer.js +6 -0
  236. package/esm/dist/src/members/records/RecordAnswer.js.map +1 -1
  237. package/esm/dist/src/members/records/RecordSettings.d.ts +2 -3
  238. package/esm/dist/src/members/records/RecordSettings.d.ts.map +1 -1
  239. package/esm/dist/src/members/records/RecordSettings.js +0 -7
  240. package/esm/dist/src/members/records/RecordSettings.js.map +1 -1
  241. package/esm/dist/src/webshops/WebshopMetaData.d.ts +2 -2
  242. package/esm/dist/src/webshops/WebshopMetaData.d.ts.map +1 -1
  243. package/esm/dist/src/webshops/WebshopMetaData.js +1 -1
  244. package/esm/dist/src/webshops/WebshopMetaData.js.map +1 -1
  245. package/package.json +2 -2
@@ -0,0 +1,206 @@
1
+ import { __decorate } from "tslib";
2
+ import { ArrayDecoder, AutoEncoder, BooleanDecoder, EnumDecoder, MapDecoder, StringDecoder, field } from "@simonbackx/simple-encoding";
3
+ import { Formatter } from "@stamhoofd/utility";
4
+ import { v4 as uuidv4 } from "uuid";
5
+ import { AccessRight, AccessRightHelper } from "./AccessRight";
6
+ import { PermissionLevel, getPermissionLevelNumber } from "./PermissionLevel";
7
+ import { PermissionsResourceType, getPermissionResourceTypeName } from "./PermissionsResourceType";
8
+ import { ResourcePermissions } from "./ResourcePermissions";
9
+ export class PermissionRole extends AutoEncoder {
10
+ constructor() {
11
+ super(...arguments);
12
+ this.name = "";
13
+ }
14
+ }
15
+ __decorate([
16
+ field({ decoder: StringDecoder, defaultValue: () => uuidv4() })
17
+ ], PermissionRole.prototype, "id", void 0);
18
+ __decorate([
19
+ field({ decoder: StringDecoder })
20
+ ], PermissionRole.prototype, "name", void 0);
21
+ export class PermissionRoleDetailed extends PermissionRole {
22
+ constructor() {
23
+ super(...arguments);
24
+ /**
25
+ * Generic access to all resources
26
+ */
27
+ this.level = PermissionLevel.None;
28
+ this.accessRights = [];
29
+ this.resources = new Map();
30
+ this.legacyManagePayments = false;
31
+ this.legacyFinanceDirector = false;
32
+ this.legacyCreateWebshops = false;
33
+ }
34
+ getDescription() {
35
+ const stack = [];
36
+ if (this.level === PermissionLevel.Read) {
37
+ stack.push("alles lezen");
38
+ }
39
+ if (this.level === PermissionLevel.Write) {
40
+ stack.push("alles bewerken");
41
+ }
42
+ if (this.level === PermissionLevel.Full) {
43
+ stack.push("volledige toegang");
44
+ }
45
+ for (const right of this.accessRights) {
46
+ stack.push(AccessRightHelper.getDescription(right));
47
+ }
48
+ for (const [type, resources] of this.resources) {
49
+ let count = 0;
50
+ if (resources.has('')) {
51
+ stack.push("alle " + getPermissionResourceTypeName(type, true));
52
+ continue;
53
+ }
54
+ for (const resource of resources.values()) {
55
+ if (resource.hasAccess(PermissionLevel.Read) || resource.accessRights.length > 0) {
56
+ count += 1;
57
+ }
58
+ }
59
+ if (count > 0) {
60
+ stack.push(count + " " + getPermissionResourceTypeName(type, count > 1));
61
+ }
62
+ }
63
+ if (stack.length === 0) {
64
+ return "geen rechten";
65
+ }
66
+ return Formatter.capitalizeFirstLetter(Formatter.joinLast(stack, ', ', ' en '));
67
+ }
68
+ hasAccess(level) {
69
+ return getPermissionLevelNumber(this.level) >= getPermissionLevelNumber(level);
70
+ }
71
+ hasAccessRight(right) {
72
+ const gl = AccessRightHelper.autoGrantRightForLevel(right);
73
+ if ((gl && this.hasAccess(gl)) || this.accessRights.includes(right)) {
74
+ return true;
75
+ }
76
+ const autoInherit = AccessRightHelper.autoInheritFrom(right);
77
+ for (const r of autoInherit) {
78
+ if (this.hasAccessRight(r)) {
79
+ return true;
80
+ }
81
+ }
82
+ return false;
83
+ }
84
+ getResourcePermissions(type, id) {
85
+ const resource = this.resources.get(type);
86
+ if (!resource) {
87
+ return null;
88
+ }
89
+ const rInstance = resource.get(id);
90
+ const allInstance = resource.get('');
91
+ if (!rInstance) {
92
+ if (allInstance) {
93
+ return allInstance;
94
+ }
95
+ return null;
96
+ }
97
+ if (allInstance) {
98
+ return rInstance.merge(allInstance);
99
+ }
100
+ return rInstance;
101
+ }
102
+ getMergedResourcePermissions(type, id) {
103
+ var _a;
104
+ let base = this.getResourcePermissions(type, id);
105
+ if (getPermissionLevelNumber(this.level) > getPermissionLevelNumber((_a = base === null || base === void 0 ? void 0 : base.level) !== null && _a !== void 0 ? _a : PermissionLevel.None)) {
106
+ if (!base) {
107
+ base = ResourcePermissions.create({ level: this.level });
108
+ }
109
+ base.level = this.level;
110
+ }
111
+ return base;
112
+ }
113
+ hasResourceAccess(type, id, level) {
114
+ var _a, _b;
115
+ if (this.hasAccess(level)) {
116
+ return true;
117
+ }
118
+ return (_b = (_a = this.getResourcePermissions(type, id)) === null || _a === void 0 ? void 0 : _a.hasAccess(level)) !== null && _b !== void 0 ? _b : false;
119
+ }
120
+ hasResourceAccessRight(type, id, right) {
121
+ var _a, _b;
122
+ if (this.hasAccessRight(right)) {
123
+ return true;
124
+ }
125
+ return (_b = (_a = this.getResourcePermissions(type, id)) === null || _a === void 0 ? void 0 : _a.hasAccessRight(right)) !== null && _b !== void 0 ? _b : false;
126
+ }
127
+ add(other) {
128
+ if (getPermissionLevelNumber(this.level) < getPermissionLevelNumber(other.level)) {
129
+ this.level = other.level;
130
+ }
131
+ for (const right of other.accessRights) {
132
+ if (!this.accessRights.includes(right)) {
133
+ this.accessRights.push(right);
134
+ }
135
+ }
136
+ for (const [type, r] of other.resources) {
137
+ for (const [id, resource] of r) {
138
+ if (!this.resources.has(type)) {
139
+ this.resources.set(type, new Map());
140
+ }
141
+ const current = this.resources.get(type).get(id);
142
+ if (!current) {
143
+ this.resources.get(type).set(id, resource);
144
+ }
145
+ else {
146
+ this.resources.get(type).set(id, current.merge(resource));
147
+ }
148
+ }
149
+ }
150
+ }
151
+ get isEmpty() {
152
+ return this.level === PermissionLevel.None && this.accessRights.length === 0 && this.resources.size === 0;
153
+ }
154
+ }
155
+ __decorate([
156
+ field({ decoder: new EnumDecoder(PermissionLevel), version: 201 })
157
+ ], PermissionRoleDetailed.prototype, "level", void 0);
158
+ __decorate([
159
+ field({
160
+ decoder: new ArrayDecoder(new EnumDecoder(AccessRight)),
161
+ version: 246,
162
+ upgrade: function () {
163
+ const base = [];
164
+ if (this.legacyManagePayments) {
165
+ base.push(AccessRight.OrganizationManagePayments);
166
+ }
167
+ if (this.legacyFinanceDirector) {
168
+ base.push(AccessRight.OrganizationFinanceDirector);
169
+ }
170
+ if (this.legacyCreateWebshops) {
171
+ base.push(AccessRight.OrganizationCreateWebshops);
172
+ }
173
+ return base;
174
+ }
175
+ })
176
+ ], PermissionRoleDetailed.prototype, "accessRights", void 0);
177
+ __decorate([
178
+ field({
179
+ decoder: new MapDecoder(new EnumDecoder(PermissionsResourceType), new MapDecoder(
180
+ // ID
181
+ StringDecoder, ResourcePermissions)),
182
+ version: 248
183
+ })
184
+ ], PermissionRoleDetailed.prototype, "resources", void 0);
185
+ __decorate([
186
+ field({ decoder: BooleanDecoder, field: 'managePayments', optional: true })
187
+ ], PermissionRoleDetailed.prototype, "legacyManagePayments", void 0);
188
+ __decorate([
189
+ field({ decoder: BooleanDecoder, version: 199, field: 'financeDirector', optional: true })
190
+ ], PermissionRoleDetailed.prototype, "legacyFinanceDirector", void 0);
191
+ __decorate([
192
+ field({ decoder: BooleanDecoder, field: 'createWebshops', optional: true })
193
+ ], PermissionRoleDetailed.prototype, "legacyCreateWebshops", void 0);
194
+ export class PermissionRoleForResponsibility extends PermissionRoleDetailed {
195
+ constructor() {
196
+ super(...arguments);
197
+ this.responsibilityGroupId = null;
198
+ }
199
+ }
200
+ __decorate([
201
+ field({ decoder: StringDecoder })
202
+ ], PermissionRoleForResponsibility.prototype, "responsibilityId", void 0);
203
+ __decorate([
204
+ field({ decoder: StringDecoder, nullable: true })
205
+ ], PermissionRoleForResponsibility.prototype, "responsibilityGroupId", void 0);
206
+ //# sourceMappingURL=PermissionRole.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PermissionRole.js","sourceRoot":"","sources":["../../../src/PermissionRole.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACvI,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AACnG,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,OAAO,cAAe,SAAQ,WAAW;IAA/C;;QAKI,SAAI,GAAG,EAAE,CAAC;IACd,CAAC;CAAA;AAJG;IADC,KAAK,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;0CACrD;AAGX;IADC,KAAK,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;4CACxB;AAGd,MAAM,OAAO,sBAAuB,SAAQ,cAAc;IAA1D;;QACI;;WAEG;QAEH,UAAK,GAAoB,eAAe,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,eAAe,CAAC,IAAI,EAAE,CAAC;YACtC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QAC7B,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,KAAK,eAAe,CAAC,KAAK,EAAE,CAAC;YACvC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;QAChC,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,KAAK,eAAe,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,iBAAiB,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,6BAA6B,CAAC,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,eAAe,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,6BAA6B,CAAC,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,SAAS,CAAC,qBAAqB,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;IACnF,CAAC;IAED,SAAS,CAAC,KAAsB;QAC5B,OAAO,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,wBAAwB,CAAC,KAAK,CAAC,CAAA;IAClF,CAAC;IAED,cAAc,CAAC,KAAkB;QAC7B,MAAM,EAAE,GAAG,iBAAiB,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,iBAAiB,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,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,wBAAwB,CAAC,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,mCAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;YACvG,IAAI,CAAC,IAAI,EAAE,CAAC;gBACR,IAAI,GAAG,mBAAmB,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,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,wBAAwB,CAAC,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,eAAe,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,CAAA;IAC7G,CAAC;CACJ;AA5LG;IADC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,WAAW,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;qDACtB;AAqB7C;IAnBC,KAAK,CAAC;QACH,OAAO,EAAE,IAAI,YAAY,CAAC,IAAI,WAAW,CAAC,WAAW,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,WAAW,CAAC,0BAA0B,CAAC,CAAC;YACtD,CAAC;YAED,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAC7B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAC;YACvD,CAAC;YAED,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC5B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,0BAA0B,CAAC,CAAC;YACtD,CAAC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC;KACJ,CAAC;4DAC8B;AAahC;IAXC,KAAK,CAAC;QACH,OAAO,EAAE,IAAI,UAAU,CACnB,IAAI,WAAW,CAAC,uBAAuB,CAAC,EACxC,IAAI,UAAU;QACV,KAAK;QACL,aAAa,EACb,mBAAmB,CACtB,CACJ;QACD,OAAO,EAAE,GAAG;KACf,CAAC;yDACmF;AAGrF;IADC,KAAK,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;oEAChD;AAG5B;IADC,KAAK,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;qEAC9D;AAG7B;IADC,KAAK,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;oEAChD;AAmJhC,MAAM,OAAO,+BAAgC,SAAQ,sBAAsB;IAA3E;;QAKI,0BAAqB,GAAgB,IAAI,CAAA;IAC7C,CAAC;CAAA;AAJG;IADC,KAAK,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;yEACV;AAGxB;IADC,KAAK,CAAC,EAAE,OAAO,EAAE,aAAa,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"}