@neohm/nestend 5.0.1 → 6.0.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 (227) hide show
  1. package/README.md +34 -18
  2. package/dist/admin/controllers/admin.api.key.controller.d.ts +5 -0
  3. package/dist/admin/controllers/admin.api.key.controller.d.ts.map +1 -1
  4. package/dist/admin/controllers/admin.api.key.controller.js +22 -2
  5. package/dist/admin/controllers/admin.api.key.controller.js.map +1 -1
  6. package/dist/admin/controllers/admin.permission.controller.d.ts +17 -0
  7. package/dist/admin/controllers/admin.permission.controller.d.ts.map +1 -0
  8. package/dist/admin/controllers/admin.permission.controller.js +125 -0
  9. package/dist/admin/controllers/admin.permission.controller.js.map +1 -0
  10. package/dist/admin/controllers/admin.scope.controller.d.ts.map +1 -1
  11. package/dist/admin/controllers/admin.scope.controller.js +1 -1
  12. package/dist/admin/controllers/admin.scope.controller.js.map +1 -1
  13. package/dist/admin/controllers/system.role.controller.d.ts +17 -1
  14. package/dist/admin/controllers/system.role.controller.d.ts.map +1 -1
  15. package/dist/admin/controllers/system.role.controller.js +13 -4
  16. package/dist/admin/controllers/system.role.controller.js.map +1 -1
  17. package/dist/admin/dtos/add.api.key.dto.d.ts +1 -0
  18. package/dist/admin/dtos/add.api.key.dto.d.ts.map +1 -1
  19. package/dist/admin/dtos/add.api.key.dto.js +12 -0
  20. package/dist/admin/dtos/add.api.key.dto.js.map +1 -1
  21. package/dist/admin/dtos/add.permission.dto.d.ts +8 -0
  22. package/dist/admin/dtos/add.permission.dto.d.ts.map +1 -0
  23. package/dist/admin/dtos/add.permission.dto.js +53 -0
  24. package/dist/admin/dtos/add.permission.dto.js.map +1 -0
  25. package/dist/admin/dtos/add.system.role.dto.d.ts +3 -0
  26. package/dist/admin/dtos/add.system.role.dto.d.ts.map +1 -1
  27. package/dist/admin/dtos/add.system.role.dto.js +38 -1
  28. package/dist/admin/dtos/add.system.role.dto.js.map +1 -1
  29. package/dist/admin/dtos/api.key.roles.dto.d.ts +4 -0
  30. package/dist/admin/dtos/api.key.roles.dto.d.ts.map +1 -0
  31. package/dist/admin/dtos/api.key.roles.dto.js +30 -0
  32. package/dist/admin/dtos/api.key.roles.dto.js.map +1 -0
  33. package/dist/admin/dtos/permission.list.dto.d.ts +4 -0
  34. package/dist/admin/dtos/permission.list.dto.d.ts.map +1 -0
  35. package/dist/admin/dtos/permission.list.dto.js +8 -0
  36. package/dist/admin/dtos/permission.list.dto.js.map +1 -0
  37. package/dist/admin/es6.classes.d.ts +9 -4
  38. package/dist/admin/es6.classes.d.ts.map +1 -1
  39. package/dist/admin/es6.classes.js +14 -0
  40. package/dist/admin/es6.classes.js.map +1 -1
  41. package/dist/admin/libraries/api.key.data.processor.d.ts +1 -0
  42. package/dist/admin/libraries/api.key.data.processor.d.ts.map +1 -1
  43. package/dist/admin/libraries/api.key.data.processor.js +23 -1
  44. package/dist/admin/libraries/api.key.data.processor.js.map +1 -1
  45. package/dist/admin/libraries/api.key.list.processor.d.ts.map +1 -1
  46. package/dist/admin/libraries/api.key.list.processor.js +18 -1
  47. package/dist/admin/libraries/api.key.list.processor.js.map +1 -1
  48. package/dist/admin/libraries/api.key.roles.data.processor.d.ts +15 -0
  49. package/dist/admin/libraries/api.key.roles.data.processor.d.ts.map +1 -0
  50. package/dist/admin/libraries/api.key.roles.data.processor.js +49 -0
  51. package/dist/admin/libraries/api.key.roles.data.processor.js.map +1 -0
  52. package/dist/admin/libraries/client.membership.data.processor.d.ts.map +1 -1
  53. package/dist/admin/libraries/client.membership.data.processor.js +4 -1
  54. package/dist/admin/libraries/client.membership.data.processor.js.map +1 -1
  55. package/dist/admin/libraries/client.user.data.processor.d.ts.map +1 -1
  56. package/dist/admin/libraries/client.user.data.processor.js +5 -2
  57. package/dist/admin/libraries/client.user.data.processor.js.map +1 -1
  58. package/dist/admin/libraries/permission.data.processor.d.ts +16 -0
  59. package/dist/admin/libraries/permission.data.processor.d.ts.map +1 -0
  60. package/dist/admin/libraries/permission.data.processor.js +68 -0
  61. package/dist/admin/libraries/permission.data.processor.js.map +1 -0
  62. package/dist/admin/libraries/permission.list.processor.d.ts +11 -0
  63. package/dist/admin/libraries/permission.list.processor.d.ts.map +1 -0
  64. package/dist/admin/libraries/permission.list.processor.js +42 -0
  65. package/dist/admin/libraries/permission.list.processor.js.map +1 -0
  66. package/dist/admin/libraries/role.list.processor.d.ts.map +1 -1
  67. package/dist/admin/libraries/role.list.processor.js +14 -1
  68. package/dist/admin/libraries/role.list.processor.js.map +1 -1
  69. package/dist/admin/libraries/system.role.data.processor.d.ts +4 -0
  70. package/dist/admin/libraries/system.role.data.processor.d.ts.map +1 -1
  71. package/dist/admin/libraries/system.role.data.processor.js +68 -5
  72. package/dist/admin/libraries/system.role.data.processor.js.map +1 -1
  73. package/dist/admin/utilities/api.key.role.policy.d.ts +4 -0
  74. package/dist/admin/utilities/api.key.role.policy.d.ts.map +1 -0
  75. package/dist/admin/utilities/api.key.role.policy.js +30 -0
  76. package/dist/admin/utilities/api.key.role.policy.js.map +1 -0
  77. package/dist/admin/utilities/scope.grants.d.ts.map +1 -1
  78. package/dist/admin/utilities/scope.grants.js +6 -1
  79. package/dist/admin/utilities/scope.grants.js.map +1 -1
  80. package/dist/admin/utilities/tenant.role.policy.d.ts +4 -5
  81. package/dist/admin/utilities/tenant.role.policy.d.ts.map +1 -1
  82. package/dist/admin/utilities/tenant.role.policy.js +7 -6
  83. package/dist/admin/utilities/tenant.role.policy.js.map +1 -1
  84. package/dist/auth/controllers/auth.controller.d.ts.map +1 -1
  85. package/dist/auth/controllers/auth.controller.js +5 -2
  86. package/dist/auth/controllers/auth.controller.js.map +1 -1
  87. package/dist/auth/controllers/tenant.invitation.controller.d.ts.map +1 -1
  88. package/dist/auth/controllers/tenant.invitation.controller.js +15 -16
  89. package/dist/auth/controllers/tenant.invitation.controller.js.map +1 -1
  90. package/dist/auth/controllers/tenant.member.controller.d.ts.map +1 -1
  91. package/dist/auth/controllers/tenant.member.controller.js +5 -5
  92. package/dist/auth/controllers/tenant.member.controller.js.map +1 -1
  93. package/dist/auth/decorators/api.key.scopes.decorator.d.ts +4 -0
  94. package/dist/auth/decorators/api.key.scopes.decorator.d.ts.map +1 -1
  95. package/dist/auth/decorators/api.key.scopes.decorator.js +7 -1
  96. package/dist/auth/decorators/api.key.scopes.decorator.js.map +1 -1
  97. package/dist/auth/entities/api.key.role.entity.d.ts +13 -0
  98. package/dist/auth/entities/api.key.role.entity.d.ts.map +1 -0
  99. package/dist/auth/entities/api.key.role.entity.js +51 -0
  100. package/dist/auth/entities/api.key.role.entity.js.map +1 -0
  101. package/dist/auth/entities/permission.entity.d.ts +10 -0
  102. package/dist/auth/entities/permission.entity.d.ts.map +1 -0
  103. package/dist/auth/entities/permission.entity.js +43 -0
  104. package/dist/auth/entities/permission.entity.js.map +1 -0
  105. package/dist/auth/entities/role.permission.entity.d.ts +10 -0
  106. package/dist/auth/entities/role.permission.entity.d.ts.map +1 -0
  107. package/dist/auth/entities/role.permission.entity.js +41 -0
  108. package/dist/auth/entities/role.permission.entity.js.map +1 -0
  109. package/dist/auth/entities/system.role.entity.d.ts +6 -0
  110. package/dist/auth/entities/system.role.entity.d.ts.map +1 -1
  111. package/dist/auth/entities/system.role.entity.js +20 -0
  112. package/dist/auth/entities/system.role.entity.js.map +1 -1
  113. package/dist/auth/enums/role.default.enum.d.ts +8 -0
  114. package/dist/auth/enums/role.default.enum.d.ts.map +1 -0
  115. package/dist/auth/enums/role.default.enum.js +13 -0
  116. package/dist/auth/enums/role.default.enum.js.map +1 -0
  117. package/dist/auth/enums/tenant.role.enum.d.ts.map +1 -1
  118. package/dist/auth/enums/tenant.role.enum.js.map +1 -1
  119. package/dist/auth/guards/api.key.guard.d.ts.map +1 -1
  120. package/dist/auth/guards/api.key.guard.js +24 -8
  121. package/dist/auth/guards/api.key.guard.js.map +1 -1
  122. package/dist/auth/middlewares/api.key.middleware.d.ts.map +1 -1
  123. package/dist/auth/middlewares/api.key.middleware.js +1 -1
  124. package/dist/auth/middlewares/api.key.middleware.js.map +1 -1
  125. package/dist/auth/processors/tenant.invitation.data.processor.d.ts +3 -1
  126. package/dist/auth/processors/tenant.invitation.data.processor.d.ts.map +1 -1
  127. package/dist/auth/processors/tenant.invitation.data.processor.js +6 -2
  128. package/dist/auth/processors/tenant.invitation.data.processor.js.map +1 -1
  129. package/dist/auth/processors/tenant.invitation.list.processor.d.ts +2 -1
  130. package/dist/auth/processors/tenant.invitation.list.processor.d.ts.map +1 -1
  131. package/dist/auth/processors/tenant.invitation.list.processor.js +4 -1
  132. package/dist/auth/processors/tenant.invitation.list.processor.js.map +1 -1
  133. package/dist/auth/services/api.key.service.d.ts +10 -2
  134. package/dist/auth/services/api.key.service.d.ts.map +1 -1
  135. package/dist/auth/services/api.key.service.js +84 -7
  136. package/dist/auth/services/api.key.service.js.map +1 -1
  137. package/dist/auth/services/auth.service.d.ts +10 -5
  138. package/dist/auth/services/auth.service.d.ts.map +1 -1
  139. package/dist/auth/services/auth.service.js +63 -49
  140. package/dist/auth/services/auth.service.js.map +1 -1
  141. package/dist/auth/services/role.service.d.ts +3 -1
  142. package/dist/auth/services/role.service.d.ts.map +1 -1
  143. package/dist/auth/services/role.service.js +37 -0
  144. package/dist/auth/services/role.service.js.map +1 -1
  145. package/dist/auth/services/scope.service.d.ts +1 -0
  146. package/dist/auth/services/scope.service.d.ts.map +1 -1
  147. package/dist/auth/services/scope.service.js +32 -0
  148. package/dist/auth/services/scope.service.js.map +1 -1
  149. package/dist/auth/services/tenant.invitation.service.d.ts +6 -4
  150. package/dist/auth/services/tenant.invitation.service.d.ts.map +1 -1
  151. package/dist/auth/services/tenant.invitation.service.js +30 -6
  152. package/dist/auth/services/tenant.invitation.service.js.map +1 -1
  153. package/dist/auth/services/tenant.membership.service.d.ts +3 -1
  154. package/dist/auth/services/tenant.membership.service.d.ts.map +1 -1
  155. package/dist/auth/services/tenant.membership.service.js +22 -3
  156. package/dist/auth/services/tenant.membership.service.js.map +1 -1
  157. package/dist/auth/types/api.key.types.d.ts +6 -0
  158. package/dist/auth/types/api.key.types.d.ts.map +1 -1
  159. package/dist/auth/types/auth.types.d.ts +2 -0
  160. package/dist/auth/types/auth.types.d.ts.map +1 -1
  161. package/dist/auth/types/rbac.types.d.ts +35 -0
  162. package/dist/auth/types/rbac.types.d.ts.map +1 -0
  163. package/dist/auth/types/rbac.types.js +3 -0
  164. package/dist/auth/types/rbac.types.js.map +1 -0
  165. package/dist/auth/utilities/grant.authority.d.ts +14 -0
  166. package/dist/auth/utilities/grant.authority.d.ts.map +1 -0
  167. package/dist/auth/utilities/grant.authority.js +38 -0
  168. package/dist/auth/utilities/grant.authority.js.map +1 -0
  169. package/dist/auth/utilities/role.catalogue.d.ts +10 -0
  170. package/dist/auth/utilities/role.catalogue.d.ts.map +1 -0
  171. package/dist/auth/utilities/role.catalogue.js +81 -0
  172. package/dist/auth/utilities/role.catalogue.js.map +1 -0
  173. package/dist/auth/utilities/role.hierarchy.d.ts +31 -0
  174. package/dist/auth/utilities/role.hierarchy.d.ts.map +1 -0
  175. package/dist/auth/utilities/role.hierarchy.js +149 -0
  176. package/dist/auth/utilities/role.hierarchy.js.map +1 -0
  177. package/dist/auth/utilities/scope.cascade.d.ts +2 -0
  178. package/dist/auth/utilities/scope.cascade.d.ts.map +1 -1
  179. package/dist/auth/utilities/scope.cascade.js +44 -2
  180. package/dist/auth/utilities/scope.cascade.js.map +1 -1
  181. package/dist/auth/utilities/tenant.access.d.ts.map +1 -1
  182. package/dist/auth/utilities/tenant.access.js +10 -3
  183. package/dist/auth/utilities/tenant.access.js.map +1 -1
  184. package/dist/common/subscribers/common.subscriber.d.ts +4 -4
  185. package/dist/common/subscribers/common.subscriber.d.ts.map +1 -1
  186. package/dist/common/subscribers/common.subscriber.js +2 -2
  187. package/dist/common/subscribers/common.subscriber.js.map +1 -1
  188. package/dist/constants/entity.constants.d.ts +3 -0
  189. package/dist/constants/entity.constants.d.ts.map +1 -1
  190. package/dist/constants/entity.constants.js +3 -0
  191. package/dist/constants/entity.constants.js.map +1 -1
  192. package/dist/constants/entity.maps.d.ts +6 -0
  193. package/dist/constants/entity.maps.d.ts.map +1 -1
  194. package/dist/constants/entity.maps.js +6 -0
  195. package/dist/constants/entity.maps.js.map +1 -1
  196. package/dist/index.d.ts +9 -4
  197. package/dist/index.d.ts.map +1 -1
  198. package/dist/index.js +20 -9
  199. package/dist/index.js.map +1 -1
  200. package/dist/migrations/1749600000004.CreateSysRolesTable.d.ts.map +1 -1
  201. package/dist/migrations/1749600000004.CreateSysRolesTable.js +7 -0
  202. package/dist/migrations/1749600000004.CreateSysRolesTable.js.map +1 -1
  203. package/dist/migrations/1749600000025.CreateSysScopesTable.d.ts +3 -0
  204. package/dist/migrations/1749600000025.CreateSysScopesTable.d.ts.map +1 -1
  205. package/dist/migrations/1749600000025.CreateSysScopesTable.js +16 -0
  206. package/dist/migrations/1749600000025.CreateSysScopesTable.js.map +1 -1
  207. package/dist/migrations/1749600000033.CreateSysPermissionsTable.d.ts +6 -0
  208. package/dist/migrations/1749600000033.CreateSysPermissionsTable.d.ts.map +1 -0
  209. package/dist/migrations/1749600000033.CreateSysPermissionsTable.js +29 -0
  210. package/dist/migrations/1749600000033.CreateSysPermissionsTable.js.map +1 -0
  211. package/dist/migrations/1749600000034.CreateSysRolePermissionsTable.d.ts +6 -0
  212. package/dist/migrations/1749600000034.CreateSysRolePermissionsTable.d.ts.map +1 -0
  213. package/dist/migrations/1749600000034.CreateSysRolePermissionsTable.js +32 -0
  214. package/dist/migrations/1749600000034.CreateSysRolePermissionsTable.js.map +1 -0
  215. package/dist/migrations/1749600000035.CreateSysApiKeyRolesTable.d.ts +6 -0
  216. package/dist/migrations/1749600000035.CreateSysApiKeyRolesTable.d.ts.map +1 -0
  217. package/dist/migrations/1749600000035.CreateSysApiKeyRolesTable.js +38 -0
  218. package/dist/migrations/1749600000035.CreateSysApiKeyRolesTable.js.map +1 -0
  219. package/dist/migrations/1749600000036.SeedGlobalAdminRole.d.ts +6 -0
  220. package/dist/migrations/1749600000036.SeedGlobalAdminRole.d.ts.map +1 -0
  221. package/dist/migrations/1749600000036.SeedGlobalAdminRole.js +25 -0
  222. package/dist/migrations/1749600000036.SeedGlobalAdminRole.js.map +1 -0
  223. package/package.json +1 -1
  224. package/dist/auth/enums/role.tier.enum.d.ts +0 -6
  225. package/dist/auth/enums/role.tier.enum.d.ts.map +0 -1
  226. package/dist/auth/enums/role.tier.enum.js +0 -10
  227. package/dist/auth/enums/role.tier.enum.js.map +0 -1
@@ -11,6 +11,7 @@ const access_revocation_1 = require("../../auth/utilities/access.revocation");
11
11
  const tenant_user_entity_1 = require("../../auth/entities/tenant.user.entity");
12
12
  const user_role_entity_1 = require("../../auth/entities/user.role.entity");
13
13
  const tenant_access_1 = require("../../auth/utilities/tenant.access");
14
+ const role_catalogue_1 = require("../../auth/utilities/role.catalogue");
14
15
  const system_role_entity_1 = require("../../auth/entities/system.role.entity");
15
16
  const audit_action_enum_1 = require("../../common/enums/audit.action.enum");
16
17
  const entity_constants_1 = require("../../constants/entity.constants");
@@ -88,10 +89,12 @@ class ClientUserDataProcessor extends user_data_processor_1.UserDataProcessor {
88
89
  const heldInTenant = held
89
90
  .filter((grant) => grant.tenant_id === this.payload.tenant_id)
90
91
  .map((grant) => grant.role_id);
92
+ const hierarchy = await role_catalogue_1.RoleCatalogue.load(user_entity_1.UserEntity.getRepository().manager);
91
93
  const required = tenant_role_policy_1.TenantRolePolicy.tenantUserSaveRole({
92
- grantsPrivileged: tenant_role_policy_1.TenantRolePolicy.newPrivilegedGrants(roles, heldInTenant).length > 0,
94
+ grantsPrivileged: tenant_role_policy_1.TenantRolePolicy.newPrivilegedGrants(roles, hierarchy, heldInTenant)
95
+ .length > 0,
93
96
  emailChanged: tenant_role_policy_1.TenantRolePolicy.emailChanged(this.existing?.email, this.existing ? this.payload.email : undefined),
94
- holdsPrivileged: held.some((grant) => tenant_role_policy_1.TenantRolePolicy.isPrivileged(grant.role?.identifier)),
97
+ holdsPrivileged: held.some((grant) => tenant_role_policy_1.TenantRolePolicy.isPrivileged(grant.role, hierarchy)),
95
98
  });
96
99
  admin_access_service_1.AdminAccessService.assertHolds(this.access, required, 'Granting a privileged tenant role, or changing the email of an account holding one,');
97
100
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.user.data.processor.js","sourceRoot":"","sources":["../../../src/admin/libraries/client.user.data.processor.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AACxC,qCAA4C;AAC5C,+DAA0D;AAC1D,iEAA6D;AAC7D,oEAA2D;AAI3D,wEAAkE;AAClE,8EAA0E;AAG1E,+EAA0E;AAC1E,2EAAsE;AACtE,sEAAkE;AAClE,+EAA0E;AAE1E,4EAAmE;AACnE,uEAAuE;AACvE,2EAAsE;AACtE,0DAAsD;AACtD,wEAAmE;AAmBnE,MAAa,uBAAwB,SAAQ,uCAAiB;IAO5D,YACmB,MAAgC,EAChC,aAA4B,EAC5B,0BAAsD;QAEvE,KAAK,EAAE,CAAC;QAJS,WAAM,GAAN,MAAM,CAA0B;QAChC,kBAAa,GAAb,aAAa,CAAe;QAC5B,+BAA0B,GAA1B,0BAA0B,CAA4B;QARxD,WAAM,GAAG,IAAI,eAAM,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;QAE3D,WAAM,GAAwB,IAAI,CAAC;QACnC,aAAQ,GAAsB,IAAI,CAAC;IAQ3C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAyB;QACrC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,QAAQ;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAE/B,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,QAAQ,GAAG,MAAM,wBAAU,CAAC,OAAO,CAAC;gBACvC,KAAK,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,yBAAQ,CAAC,WAAW,EAAE;aACvD,CAAC,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAChB,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,mCAAmC,CAAC,CAAC;QACnE,CAAC;QAED,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAGnE,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAC9D,MAAM,IAAI,CAAC,eAAe,CACxB,IAAI,CAAC,OAAO,CAAC,OAAO,EACpB,IAAI,CAAC,OAAO,CAAC,YAAY,EACzB,SAAS,EACT,MAAM,CACP,CAAC;QACF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;QACvD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAEzE,IAAI,CAAC,iCAAiC,EAAE,CAAC;QACzC,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAEO,KAAK,CAAC,cAAc;QAC1B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC3E,IAAI,CAAC,MAAM;YACT,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,8BAA8B,CAAC,CAAC;QAEnE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,MAAc;QAC7C,MAAM,QAAQ,GAAG,MAAM,qCAAgB,CAAC,QAAQ,CAAC;YAC/C,OAAO,EAAE,MAAM;YACf,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;SAClC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ;YACX,IAAI,CAAC,cAAc,CACjB,WAAW,EACX,0CAA0C,CAC3C,CAAC;IACN,CAAC;IAEO,KAAK,CAAC,YAAY,CACxB,OAA6B,EAC7B,KAAa;QAEb,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;QAClD,IAAI,CAAC,aAAa,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QAErC,MAAM,KAAK,GAAG,MAAM,qCAAgB,CAAC,IAAI,CAAC;YACxC,KAAK,EAAE,EAAE,EAAE,EAAE,IAAA,YAAE,EAAC,aAAa,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE;SAClD,CAAC,CAAC;QACH,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAE3D,KAAK,MAAM,MAAM,IAAI,aAAa;YAChC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC;gBAC3B,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,MAAM,yBAAyB,CAAC,CAAC;QACzE,OAAO,KAAK,CAAC;IACf,CAAC;IAGO,KAAK,CAAC,SAAS,CAAC,KAAyB;QAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ;YACxB,CAAC,CAAC,MAAM,iCAAc,CAAC,IAAI,CAAC;gBACxB,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;gBACpC,SAAS,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;aAC1B,CAAC;YACJ,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,YAAY,GAAG,IAAI;aACtB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;aAC7D,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEjC,MAAM,QAAQ,GAAG,qCAAgB,CAAC,kBAAkB,CAAC;YACnD,gBAAgB,EACd,qCAAgB,CAAC,mBAAmB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC;YACtE,YAAY,EAAE,qCAAgB,CAAC,YAAY,CACzC,IAAI,CAAC,QAAQ,EAAE,KAAK,EACpB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAC/C;YACD,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CACnC,qCAAgB,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CACtD;SACF,CAAC,CAAC;QACH,yCAAkB,CAAC,WAAW,CAC5B,IAAI,CAAC,MAAM,EACX,QAAQ,EACR,qFAAqF,CACtF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,IAAI;QAChB,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;IAEO,KAAK,CAAC,MAAM;QAClB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC;QAE1B,MAAM,QAAQ,GAAG,MAAM,4BAAW,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/D,MAAM,IAAI,GAAG,wBAAU,CAAC,MAAM,CAAC;YAC7B,SAAS,EAAE,yBAAQ,CAAC,WAAW;YAC/B,eAAe,EAAE,IAAI,CAAC,SAAS;YAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ;YACR,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI;SAC5B,CAAC,CAAC;QAGH,MAAM,wBAAU,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YACjE,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrB,MAAM,4BAAY,CAAC,IAAI,CACrB,GAAG,EACH,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,QAAQ,IAAI,EAAE,CACpB,CAAC;YACF,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE;gBAChC,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE;aAC9B,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAE5B,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAEO,KAAK,CAAC,MAAM,CAAC,IAAgB;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC;QAC1B,MAAM,MAAM,GAAG,wBAAU,CAAC,IAAI,CAAC,IAAI,EAAE,uCAAiB,CAAC,OAAO,CAAC,CAAC;QAChE,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;QAC9B,MAAM,YAAY,GAAG,qCAAgB,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAE3E,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC;QAC5C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC;QAC3D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC;QAC5C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC;QAEzC,IAAI,YAAY;YAAE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAEhD,MAAM,wBAAU,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YACjE,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YACxD,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAErB,IAAI,IAAI,CAAC,QAAQ;gBACf,MAAM,4BAAY,CAAC,cAAc,CAC/B,GAAG,EACH,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,QAAQ,CACd,CAAC;YACJ,IAAI,YAAY,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;gBAC7C,MAAM,oCAAgB,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YACxD,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE;gBAClC,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,eAAe,EAAE,UAAU;gBAC3B,QAAQ,EAAE,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;gBAC9C,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACjD,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,GAAkB,EAAE,MAAc;QAC1D,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,iCAAc,EAAE;YAC9C,OAAO,EAAE,MAAM;YACf,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;SAClC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;IACrD,CAAC;IAEO,KAAK,CACX,GAAkB,EAClB,IAAgB,EAChB,MAAsC,EACtC,OAAgC;QAEhC,OAAO,wBAAU,CAAC,MAAM,CAAC,GAAG,EAAE;YAC5B,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;YACvB,UAAU,EAAE,sCAAmB,CAAC,IAAI;YACpC,QAAQ,EAAE,IAAI,CAAC,EAAE;YACjB,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,+BAAW,CAAC,MAAM,CAAC,CAAC,CAAC,+BAAW,CAAC,MAAM;YACxD,QAAQ,EAAE,MAAM;YAChB,QAAQ,EAAE,wBAAU,CAAC,IAAI,CAAC,IAAI,EAAE,uCAAiB,CAAC,OAAO,CAAC;YAC1D,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAQO,KAAK,CAAC,UAAU,CAAC,IAAgB;QAEvC,MAAM,IAAI,GAA+B;YACvC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,UAAU,EAAE,IAAI,CAAC,KAAK;YACtB,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,EAAE;YACpC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;SAC5C,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,wDAAwD,IAAI,CAAC,KAAK,KAAM,KAAe,CAAC,OAAO,EAAE,CAClG,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AArPD,0DAqPC"}
1
+ {"version":3,"file":"client.user.data.processor.js","sourceRoot":"","sources":["../../../src/admin/libraries/client.user.data.processor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { Repository } from 'typeorm';
2
+ import { CatalogueDataProcessor } from './catalogue.data.processor';
3
+ import { AdminAuthenticatedAccess } from '../../auth/types/auth.types';
4
+ import { PermissionEntity } from '../../auth/entities/permission.entity';
5
+ import { AddPermissionDto } from '../dtos/add.permission.dto';
6
+ export declare class PermissionDataProcessor extends CatalogueDataProcessor<PermissionEntity> {
7
+ private readonly access;
8
+ protected readonly label = "permission";
9
+ protected payload: AddPermissionDto;
10
+ constructor(access: AdminAuthenticatedAccess);
11
+ protected repository(): Repository<PermissionEntity>;
12
+ process(payload: AddPermissionDto): Promise<PermissionEntity>;
13
+ private validate;
14
+ private set;
15
+ }
16
+ //# sourceMappingURL=permission.data.processor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permission.data.processor.d.ts","sourceRoot":"","sources":["../../../src/admin/libraries/permission.data.processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAIzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAc9D,qBAAa,uBAAwB,SAAQ,sBAAsB,CAAC,gBAAgB,CAAC;IAIvE,OAAO,CAAC,QAAQ,CAAC,MAAM;IAHnC,SAAS,CAAC,QAAQ,CAAC,KAAK,gBAAgB;IACxC,SAAS,CAAC,OAAO,EAAE,gBAAgB,CAAC;gBAEP,MAAM,EAAE,wBAAwB;IAI7D,SAAS,CAAC,UAAU,IAAI,UAAU,CAAC,gBAAgB,CAAC;IAI9C,OAAO,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;YAMrD,QAAQ;YAcR,GAAG;CA0BlB"}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PermissionDataProcessor = void 0;
4
+ const catalogue_data_processor_1 = require("./catalogue.data.processor");
5
+ const permission_entity_1 = require("../../auth/entities/permission.entity");
6
+ const scope_entity_1 = require("../../auth/entities/scope.entity");
7
+ const audit_action_enum_1 = require("../../common/enums/audit.action.enum");
8
+ const entity_constants_1 = require("../../constants/entity.constants");
9
+ const admin_audit_1 = require("../utilities/admin.audit");
10
+ const AUDITED = [
11
+ 'scope_id',
12
+ 'identifier',
13
+ 'name',
14
+ 'description',
15
+ ];
16
+ class PermissionDataProcessor extends catalogue_data_processor_1.CatalogueDataProcessor {
17
+ constructor(access) {
18
+ super();
19
+ this.access = access;
20
+ this.label = 'permission';
21
+ }
22
+ repository() {
23
+ return permission_entity_1.PermissionEntity.getRepository();
24
+ }
25
+ async process(payload) {
26
+ this.payload = payload;
27
+ await this.validate();
28
+ return this.set();
29
+ }
30
+ async validate() {
31
+ const body = this.payload;
32
+ await this.loadExisting(body.id);
33
+ this.assertImmutable('identifier', body.identifier);
34
+ this.assertImmutable('scope_id', body.scope_id);
35
+ if (this.isNew) {
36
+ await this.assertUnique('identifier', body.identifier, body.id);
37
+ if (!(await scope_entity_1.ScopeEntity.existsBy({ id: body.scope_id })))
38
+ this.setColumnError('scope_id', 'No scope exists for this id');
39
+ }
40
+ this.raiseExceptionOnValidationFailure();
41
+ }
42
+ async set() {
43
+ const body = this.payload;
44
+ const actor = this.access.user;
45
+ const before = admin_audit_1.AdminAudit.pick(this.existing, AUDITED);
46
+ const permission = this.existing ?? permission_entity_1.PermissionEntity.create({ created_by: actor.id });
47
+ if (this.existing)
48
+ permission.updated_by = actor.id;
49
+ permission.scope_id = body.scope_id;
50
+ permission.identifier = body.identifier;
51
+ permission.name = body.name;
52
+ permission.description = body.description ?? permission.description ?? '';
53
+ await this.transaction(async (trx) => {
54
+ await trx.save(permission);
55
+ await admin_audit_1.AdminAudit.record(trx, {
56
+ actor,
57
+ sourceType: entity_constants_1.baseEntityConstants.permission,
58
+ sourceId: permission.id,
59
+ action: before ? audit_action_enum_1.AuditAction.UPDATE : audit_action_enum_1.AuditAction.CREATE,
60
+ oldValue: before,
61
+ newValue: admin_audit_1.AdminAudit.pick(permission, AUDITED),
62
+ });
63
+ });
64
+ return permission;
65
+ }
66
+ }
67
+ exports.PermissionDataProcessor = PermissionDataProcessor;
68
+ //# sourceMappingURL=permission.data.processor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permission.data.processor.js","sourceRoot":"","sources":["../../../src/admin/libraries/permission.data.processor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { CommonListProcessor } from '../../common/libraries/common.list.processor';
2
+ import { CommonListFilterConfig } from '../../common/types/list.types';
3
+ import { ListFilterService } from '../../common/services/list.filter.service';
4
+ import { PermissionListDto } from '../dtos/permission.list.dto';
5
+ export declare class PermissionListProcessor extends CommonListProcessor {
6
+ protected readonly listFilterService: ListFilterService;
7
+ protected config: CommonListFilterConfig;
8
+ constructor(listFilterService: ListFilterService);
9
+ process(payload: PermissionListDto): Promise<import("../../common/types/list.types").CommonListResult>;
10
+ }
11
+ //# sourceMappingURL=permission.list.processor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permission.list.processor.d.ts","sourceRoot":"","sources":["../../../src/admin/libraries/permission.list.processor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AACnF,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAGhE,qBAAa,uBAAwB,SAAQ,mBAAmB;IA0BlD,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB;IAzBnE,SAAS,CAAC,MAAM,EAAE,sBAAsB,CAuBtC;gBAE6B,iBAAiB,EAAE,iBAAiB;IAI7D,OAAO,CAAC,OAAO,EAAE,iBAAiB;CAIzC"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PermissionListProcessor = void 0;
4
+ const sort_direction_enum_1 = require("../../common/enums/sort.direction.enum");
5
+ const filter_value_type_enum_1 = require("../../common/enums/filter.value.type.enum");
6
+ const common_list_processor_1 = require("../../common/libraries/common.list.processor");
7
+ class PermissionListProcessor extends common_list_processor_1.CommonListProcessor {
8
+ constructor(listFilterService) {
9
+ super();
10
+ this.listFilterService = listFilterService;
11
+ this.config = {
12
+ query: `sys_permissions p
13
+ left join sys_scopes s on s.id = p.scope_id`,
14
+ columns: [
15
+ { key: 'p.id', identifier: 'id', type: filter_value_type_enum_1.FilterValueTypeEnum.UUID },
16
+ { key: 'p.identifier', identifier: 'identifier', searchable: true },
17
+ { key: 'p.name', identifier: 'name', searchable: true },
18
+ { key: 'p.description', identifier: 'description', searchable: true },
19
+ {
20
+ key: 'p.scope_id',
21
+ identifier: 'scope_id',
22
+ type: filter_value_type_enum_1.FilterValueTypeEnum.UUID,
23
+ },
24
+ { key: 's.identifier', identifier: 'scope_identifier', searchable: true },
25
+ { key: 's.name', identifier: 'scope_name' },
26
+ {
27
+ key: 'p.created_at',
28
+ identifier: 'created_at',
29
+ type: filter_value_type_enum_1.FilterValueTypeEnum.DATETIME,
30
+ },
31
+ ],
32
+ predicates: ['p.deleted_at is null'],
33
+ defaultSort: { field: 'identifier', direction: sort_direction_enum_1.SortDirection.ASC },
34
+ };
35
+ }
36
+ async process(payload) {
37
+ this.payload = payload;
38
+ return this.handle();
39
+ }
40
+ }
41
+ exports.PermissionListProcessor = PermissionListProcessor;
42
+ //# sourceMappingURL=permission.list.processor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permission.list.processor.js","sourceRoot":"","sources":["../../../src/admin/libraries/permission.list.processor.ts"],"names":[],"mappings":";;;AAAA,gFAAuE;AACvE,sFAAgF;AAChF,wFAAmF;AAMnF,MAAa,uBAAwB,SAAQ,2CAAmB;IA0B9D,YAA+B,iBAAoC;QACjE,KAAK,EAAE,CAAC;QADqB,sBAAiB,GAAjB,iBAAiB,CAAmB;QAzBzD,WAAM,GAA2B;YACzC,KAAK,EAAE;kDACuC;YAC9C,OAAO,EAAE;gBACP,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,4CAAmB,CAAC,IAAI,EAAE;gBACjE,EAAE,GAAG,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE;gBACnE,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE;gBACvD,EAAE,GAAG,EAAE,eAAe,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE;gBACrE;oBACE,GAAG,EAAE,YAAY;oBACjB,UAAU,EAAE,UAAU;oBACtB,IAAI,EAAE,4CAAmB,CAAC,IAAI;iBAC/B;gBACD,EAAE,GAAG,EAAE,cAAc,EAAE,UAAU,EAAE,kBAAkB,EAAE,UAAU,EAAE,IAAI,EAAE;gBACzE,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE;gBAC3C;oBACE,GAAG,EAAE,cAAc;oBACnB,UAAU,EAAE,YAAY;oBACxB,IAAI,EAAE,4CAAmB,CAAC,QAAQ;iBACnC;aACF;YACD,UAAU,EAAE,CAAC,sBAAsB,CAAC;YACpC,WAAW,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,mCAAa,CAAC,GAAG,EAAE;SACnE,CAAC;IAIF,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAA0B;QACtC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;CACF;AAlCD,0DAkCC"}
@@ -1 +1 @@
1
- {"version":3,"file":"role.list.processor.d.ts","sourceRoot":"","sources":["../../../src/admin/libraries/role.list.processor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AACnF,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAMpD,qBAAa,iBAAkB,SAAQ,mBAAmB;IAuB5C,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB;IAtBnE,SAAS,CAAC,MAAM,EAAE,sBAAsB,CAoBtC;gBAE6B,iBAAiB,EAAE,iBAAiB;IAI7D,OAAO,CAAC,OAAO,EAAE,WAAW;CAInC"}
1
+ {"version":3,"file":"role.list.processor.d.ts","sourceRoot":"","sources":["../../../src/admin/libraries/role.list.processor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AACnF,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAOpD,qBAAa,iBAAkB,SAAQ,mBAAmB;IAoC5C,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB;IAnCnE,SAAS,CAAC,MAAM,EAAE,sBAAsB,CAiCtC;gBAE6B,iBAAiB,EAAE,iBAAiB;IAI7D,OAAO,CAAC,OAAO,EAAE,WAAW;CAInC"}
@@ -9,12 +9,25 @@ class RoleListProcessor extends common_list_processor_1.CommonListProcessor {
9
9
  super();
10
10
  this.listFilterService = listFilterService;
11
11
  this.config = {
12
- query: 'sys_roles r',
12
+ query: `sys_roles r
13
+ left join sys_scopes s on s.id = r.scope_id`,
13
14
  columns: [
14
15
  { key: 'r.id', identifier: 'id', type: filter_value_type_enum_1.FilterValueTypeEnum.UUID },
15
16
  { key: 'r.identifier', identifier: 'identifier', searchable: true },
16
17
  { key: 'r.name', identifier: 'name', searchable: true },
17
18
  { key: 'r.description', identifier: 'description', searchable: true },
19
+ {
20
+ key: 'r.scope_id',
21
+ identifier: 'scope_id',
22
+ type: filter_value_type_enum_1.FilterValueTypeEnum.UUID,
23
+ },
24
+ { key: 's.identifier', identifier: 'scope_identifier', searchable: true },
25
+ { key: 's.name', identifier: 'scope_name' },
26
+ {
27
+ key: 'r.priority',
28
+ identifier: 'priority',
29
+ type: filter_value_type_enum_1.FilterValueTypeEnum.NUMBER,
30
+ },
18
31
  {
19
32
  key: 'r.is_active',
20
33
  identifier: 'is_active',
@@ -1 +1 @@
1
- {"version":3,"file":"role.list.processor.js","sourceRoot":"","sources":["../../../src/admin/libraries/role.list.processor.ts"],"names":[],"mappings":";;;AAAA,gFAAuE;AACvE,sFAAgF;AAChF,wFAAmF;AASnF,MAAa,iBAAkB,SAAQ,2CAAmB;IAuBxD,YAA+B,iBAAoC;QACjE,KAAK,EAAE,CAAC;QADqB,sBAAiB,GAAjB,iBAAiB,CAAmB;QAtBzD,WAAM,GAA2B;YACzC,KAAK,EAAE,aAAa;YACpB,OAAO,EAAE;gBACP,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,4CAAmB,CAAC,IAAI,EAAE;gBACjE,EAAE,GAAG,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE;gBACnE,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE;gBACvD,EAAE,GAAG,EAAE,eAAe,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE;gBACrE;oBACE,GAAG,EAAE,aAAa;oBAClB,UAAU,EAAE,WAAW;oBACvB,IAAI,EAAE,4CAAmB,CAAC,OAAO;iBAClC;gBACD;oBACE,GAAG,EAAE,cAAc;oBACnB,UAAU,EAAE,YAAY;oBACxB,IAAI,EAAE,4CAAmB,CAAC,QAAQ;iBACnC;aACF;YACD,UAAU,EAAE,CAAC,sBAAsB,CAAC;YACpC,WAAW,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,mCAAa,CAAC,GAAG,EAAE;SAC7D,CAAC;IAIF,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAoB;QAChC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;CACF;AA/BD,8CA+BC"}
1
+ {"version":3,"file":"role.list.processor.js","sourceRoot":"","sources":["../../../src/admin/libraries/role.list.processor.ts"],"names":[],"mappings":";;;AAAA,gFAAuE;AACvE,sFAAgF;AAChF,wFAAmF;AAUnF,MAAa,iBAAkB,SAAQ,2CAAmB;IAoCxD,YAA+B,iBAAoC;QACjE,KAAK,EAAE,CAAC;QADqB,sBAAiB,GAAjB,iBAAiB,CAAmB;QAnCzD,WAAM,GAA2B;YACzC,KAAK,EAAE;kDACuC;YAC9C,OAAO,EAAE;gBACP,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,4CAAmB,CAAC,IAAI,EAAE;gBACjE,EAAE,GAAG,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE;gBACnE,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE;gBACvD,EAAE,GAAG,EAAE,eAAe,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE;gBACrE;oBACE,GAAG,EAAE,YAAY;oBACjB,UAAU,EAAE,UAAU;oBACtB,IAAI,EAAE,4CAAmB,CAAC,IAAI;iBAC/B;gBACD,EAAE,GAAG,EAAE,cAAc,EAAE,UAAU,EAAE,kBAAkB,EAAE,UAAU,EAAE,IAAI,EAAE;gBACzE,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE;gBAC3C;oBACE,GAAG,EAAE,YAAY;oBACjB,UAAU,EAAE,UAAU;oBACtB,IAAI,EAAE,4CAAmB,CAAC,MAAM;iBACjC;gBACD;oBACE,GAAG,EAAE,aAAa;oBAClB,UAAU,EAAE,WAAW;oBACvB,IAAI,EAAE,4CAAmB,CAAC,OAAO;iBAClC;gBACD;oBACE,GAAG,EAAE,cAAc;oBACnB,UAAU,EAAE,YAAY;oBACxB,IAAI,EAAE,4CAAmB,CAAC,QAAQ;iBACnC;aACF;YACD,UAAU,EAAE,CAAC,sBAAsB,CAAC;YACpC,WAAW,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,mCAAa,CAAC,GAAG,EAAE;SAC7D,CAAC;IAIF,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAoB;QAChC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;CACF;AA5CD,8CA4CC"}
@@ -11,6 +11,10 @@ export declare class SystemRoleDataProcessor extends CatalogueDataProcessor<Syst
11
11
  protected repository(): Repository<SystemRoleEntity>;
12
12
  process(payload: AddSystemRoleDto): Promise<SystemRoleEntity>;
13
13
  private validate;
14
+ private get scopeId();
15
+ private get priority();
16
+ private movesScopeTop;
17
+ private validatePermissions;
14
18
  private set;
15
19
  }
16
20
  //# sourceMappingURL=system.role.data.processor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"system.role.data.processor.d.ts","sourceRoot":"","sources":["../../../src/admin/libraries/system.role.data.processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAI1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAmB/D,qBAAa,uBAAwB,SAAQ,sBAAsB,CAAC,gBAAgB,CAAC;IAIvE,OAAO,CAAC,QAAQ,CAAC,MAAM;IAHnC,SAAS,CAAC,QAAQ,CAAC,KAAK,UAAU;IAClC,SAAS,CAAC,OAAO,EAAE,gBAAgB,CAAC;gBAEP,MAAM,EAAE,wBAAwB;IAI7D,SAAS,CAAC,UAAU,IAAI,UAAU,CAAC,gBAAgB,CAAC;IAI9C,OAAO,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;YAMrD,QAAQ;YA4BR,GAAG;CAyBlB"}
1
+ {"version":3,"file":"system.role.data.processor.d.ts","sourceRoot":"","sources":["../../../src/admin/libraries/system.role.data.processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAM,UAAU,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAQ1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAsB/D,qBAAa,uBAAwB,SAAQ,sBAAsB,CAAC,gBAAgB,CAAC;IAIvE,OAAO,CAAC,QAAQ,CAAC,MAAM;IAHnC,SAAS,CAAC,QAAQ,CAAC,KAAK,UAAU;IAClC,SAAS,CAAC,OAAO,EAAE,gBAAgB,CAAC;gBAEP,MAAM,EAAE,wBAAwB;IAI7D,SAAS,CAAC,UAAU,IAAI,UAAU,CAAC,gBAAgB,CAAC;IAI9C,OAAO,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;YAMrD,QAAQ;IAgCtB,OAAO,KAAK,OAAO,GAIlB;IAED,OAAO,KAAK,QAAQ,GAMnB;YAGa,aAAa;YAgBb,mBAAmB;YAiCnB,GAAG;CAsClB"}
@@ -1,19 +1,25 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SystemRoleDataProcessor = void 0;
4
+ const typeorm_1 = require("typeorm");
4
5
  const catalogue_data_processor_1 = require("./catalogue.data.processor");
5
6
  const system_role_entity_1 = require("../../auth/entities/system.role.entity");
7
+ const permission_entity_1 = require("../../auth/entities/permission.entity");
8
+ const scope_entity_1 = require("../../auth/entities/scope.entity");
9
+ const role_service_1 = require("../../auth/services/role.service");
10
+ const role_default_enum_1 = require("../../auth/enums/role.default.enum");
6
11
  const global_admin_roles_enum_1 = require("../../auth/enums/global.admin.roles.enum");
7
12
  const audit_action_enum_1 = require("../../common/enums/audit.action.enum");
8
13
  const entity_constants_1 = require("../../constants/entity.constants");
9
14
  const admin_access_service_1 = require("../services/admin.access.service");
10
15
  const admin_audit_1 = require("../utilities/admin.audit");
11
- const tenant_role_policy_1 = require("../utilities/tenant.role.policy");
12
16
  const AUDITED = [
13
17
  'identifier',
14
18
  'name',
15
19
  'description',
16
20
  'is_active',
21
+ 'scope_id',
22
+ 'priority',
17
23
  ];
18
24
  class SystemRoleDataProcessor extends catalogue_data_processor_1.CatalogueDataProcessor {
19
25
  constructor(access) {
@@ -32,17 +38,67 @@ class SystemRoleDataProcessor extends catalogue_data_processor_1.CatalogueDataPr
32
38
  async validate() {
33
39
  const body = this.payload;
34
40
  await this.loadExisting(body.id);
35
- if (tenant_role_policy_1.TenantRolePolicy.isReserved(body.identifier) ||
36
- tenant_role_policy_1.TenantRolePolicy.isReserved(this.existing?.identifier))
37
- this.setColumnError('identifier', 'This role identifier is reserved and cannot be managed through the API');
38
41
  this.assertImmutable('identifier', body.identifier);
39
- if (this.isNew)
42
+ this.assertImmutable('scope_id', body.scope_id);
43
+ if (this.isNew) {
40
44
  await this.assertUnique('identifier', body.identifier, body.id);
45
+ if (body.scope_id && !(await scope_entity_1.ScopeEntity.existsBy({ id: body.scope_id })))
46
+ this.setColumnError('scope_id', 'No scope exists for this id');
47
+ }
48
+ await this.validatePermissions();
41
49
  this.raiseExceptionOnValidationFailure();
42
50
  if (this.existing &&
43
51
  body.is_active !== undefined &&
44
52
  body.is_active !== this.existing.is_active)
45
53
  admin_access_service_1.AdminAccessService.assertHolds(this.access, global_admin_roles_enum_1.GlobalAdminRoles.GLOBAL_SUPER_ADMIN, 'Activating or deactivating a tenant role');
54
+ if (await this.movesScopeTop())
55
+ admin_access_service_1.AdminAccessService.assertHolds(this.access, global_admin_roles_enum_1.GlobalAdminRoles.GLOBAL_SUPER_ADMIN, "Changing a tenant role's priority, or creating one above its scope's top role,");
56
+ }
57
+ get scopeId() {
58
+ return this.existing
59
+ ? (this.existing.scope_id ?? null)
60
+ : (this.payload.scope_id ?? null);
61
+ }
62
+ get priority() {
63
+ return (this.payload.priority ??
64
+ this.existing?.priority ??
65
+ Number(role_default_enum_1.RoleDefault.PRIORITY));
66
+ }
67
+ async movesScopeTop() {
68
+ if (this.existing)
69
+ return (this.payload.priority !== undefined &&
70
+ this.payload.priority !== this.existing.priority);
71
+ if (!this.scopeId)
72
+ return false;
73
+ const top = await system_role_entity_1.SystemRoleEntity.findOne({
74
+ where: { scope_id: this.scopeId, is_active: true },
75
+ order: { priority: 'ASC' },
76
+ select: { id: true, priority: true },
77
+ });
78
+ return !!top && this.priority < top.priority;
79
+ }
80
+ async validatePermissions() {
81
+ const permissionIds = [...new Set(this.payload.permission_ids ?? [])];
82
+ if (!permissionIds.length)
83
+ return;
84
+ const scopeId = this.scopeId;
85
+ if (!scopeId) {
86
+ this.setColumnError('permission_ids', 'An unscoped role carries no permissions');
87
+ return;
88
+ }
89
+ const [permissions, children] = await Promise.all([
90
+ permission_entity_1.PermissionEntity.findBy({ id: (0, typeorm_1.In)(permissionIds) }),
91
+ scope_entity_1.ScopeEntity.find({ where: { parent_id: scopeId }, select: { id: true } }),
92
+ ]);
93
+ const allowed = new Set([scopeId, ...children.map((child) => child.id)]);
94
+ const byId = new Map(permissions.map((item) => [item.id, item]));
95
+ for (const permissionId of permissionIds) {
96
+ const permission = byId.get(permissionId);
97
+ if (!permission)
98
+ this.setColumnError('permission_ids', `Permission '${permissionId}' not found`);
99
+ else if (!allowed.has(permission.scope_id))
100
+ this.setColumnError('permission_ids', `Permission '${permission.identifier}' is outside this role's scope`);
101
+ }
46
102
  }
47
103
  async set() {
48
104
  const body = this.payload;
@@ -52,9 +108,13 @@ class SystemRoleDataProcessor extends catalogue_data_processor_1.CatalogueDataPr
52
108
  role.name = body.name;
53
109
  role.description = body.description ?? role.description ?? '';
54
110
  role.is_active = body.is_active ?? role.is_active ?? true;
111
+ role.scope_id = this.scopeId;
112
+ role.priority = this.priority;
55
113
  role.attributes = role.attributes ?? {};
56
114
  await this.transaction(async (trx) => {
57
115
  await trx.save(role);
116
+ if (body.permission_ids)
117
+ await role_service_1.RoleService.setPermissions(trx, role.id, body.permission_ids, this.access.user.id);
58
118
  await admin_audit_1.AdminAudit.record(trx, {
59
119
  actor: this.access.user,
60
120
  sourceType: entity_constants_1.baseEntityConstants.systemRole,
@@ -62,6 +122,9 @@ class SystemRoleDataProcessor extends catalogue_data_processor_1.CatalogueDataPr
62
122
  action: before ? audit_action_enum_1.AuditAction.UPDATE : audit_action_enum_1.AuditAction.CREATE,
63
123
  oldValue: before,
64
124
  newValue: admin_audit_1.AdminAudit.pick(role, AUDITED),
125
+ ...(body.permission_ids
126
+ ? { context: { permission_ids: [...body.permission_ids].sort() } }
127
+ : {}),
65
128
  });
66
129
  });
67
130
  return role;
@@ -1 +1 @@
1
- {"version":3,"file":"system.role.data.processor.js","sourceRoot":"","sources":["../../../src/admin/libraries/system.role.data.processor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"system.role.data.processor.js","sourceRoot":"","sources":["../../../src/admin/libraries/system.role.data.processor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare class ApiKeyRolePolicy {
2
+ static errors(roleIds: string[], scopeIds: Set<string>): Promise<string[]>;
3
+ }
4
+ //# sourceMappingURL=api.key.role.policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.key.role.policy.d.ts","sourceRoot":"","sources":["../../../src/admin/utilities/api.key.role.policy.ts"],"names":[],"mappings":"AAIA,qBAAa,gBAAgB;WAMd,MAAM,CACjB,OAAO,EAAE,MAAM,EAAE,EACjB,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,GACpB,OAAO,CAAC,MAAM,EAAE,CAAC;CAsBrB"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ApiKeyRolePolicy = void 0;
4
+ const typeorm_1 = require("typeorm");
5
+ const system_role_entity_1 = require("../../auth/entities/system.role.entity");
6
+ class ApiKeyRolePolicy {
7
+ static async errors(roleIds, scopeIds) {
8
+ const unique = [...new Set(roleIds)];
9
+ if (!unique.length)
10
+ return [];
11
+ const roles = await system_role_entity_1.SystemRoleEntity.findBy({
12
+ id: (0, typeorm_1.In)(unique),
13
+ is_active: true,
14
+ });
15
+ const byId = new Map(roles.map((role) => [role.id, role]));
16
+ const errors = [];
17
+ for (const roleId of unique) {
18
+ const role = byId.get(roleId);
19
+ if (!role)
20
+ errors.push(`Role '${roleId}' not found or inactive`);
21
+ else if (!role.scope_id)
22
+ errors.push(`Role '${role.identifier}' is unscoped; keys hold scoped roles only`);
23
+ else if (!scopeIds.has(role.scope_id))
24
+ errors.push(`Role '${role.identifier}' is outside the key's scopes`);
25
+ }
26
+ return errors;
27
+ }
28
+ }
29
+ exports.ApiKeyRolePolicy = ApiKeyRolePolicy;
30
+ //# sourceMappingURL=api.key.role.policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.key.role.policy.js","sourceRoot":"","sources":["../../../src/admin/utilities/api.key.role.policy.ts"],"names":[],"mappings":";;;AAAA,qCAA6B;AAC7B,+EAA0E;AAG1E,MAAa,gBAAgB;IAM3B,MAAM,CAAC,KAAK,CAAC,MAAM,CACjB,OAAiB,EACjB,QAAqB;QAErB,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QAE9B,MAAM,KAAK,GAAG,MAAM,qCAAgB,CAAC,MAAM,CAAC;YAC1C,EAAE,EAAE,IAAA,YAAE,EAAC,MAAM,CAAC;YACd,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,KAAK,MAAM,MAAM,IAAI,MAAM,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC9B,IAAI,CAAC,IAAI;gBAAE,MAAM,CAAC,IAAI,CAAC,SAAS,MAAM,yBAAyB,CAAC,CAAC;iBAC5D,IAAI,CAAC,IAAI,CAAC,QAAQ;gBACrB,MAAM,CAAC,IAAI,CACT,SAAS,IAAI,CAAC,UAAU,4CAA4C,CACrE,CAAC;iBACC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;gBACnC,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,UAAU,+BAA+B,CAAC,CAAC;QACzE,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AA/BD,4CA+BC"}
@@ -1 +1 @@
1
- {"version":3,"file":"scope.grants.d.ts","sourceRoot":"","sources":["../../../src/admin/utilities/scope.grants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAM,MAAM,SAAS,CAAC;AAM5C,qBAAa,WAAW;WACT,KAAK,CAChB,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,MAAM,CAAC;WAUL,YAAY,CACvB,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;CAUvD"}
1
+ {"version":3,"file":"scope.grants.d.ts","sourceRoot":"","sources":["../../../src/admin/utilities/scope.grants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAM,MAAM,SAAS,CAAC;AAW5C,qBAAa,WAAW;WACT,KAAK,CAChB,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,MAAM,CAAC;WAaL,YAAY,CACvB,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;CAUvD"}
@@ -2,7 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ScopeGrants = void 0;
4
4
  const typeorm_1 = require("typeorm");
5
+ const api_key_role_entity_1 = require("../../auth/entities/api.key.role.entity");
5
6
  const api_scope_entity_1 = require("../../auth/entities/api.scope.entity");
7
+ const user_role_entity_1 = require("../../auth/entities/user.role.entity");
6
8
  const scope_entity_1 = require("../../auth/entities/scope.entity");
7
9
  const tenant_scope_entity_1 = require("../../auth/entities/tenant.scope.entity");
8
10
  class ScopeGrants {
@@ -10,8 +12,11 @@ class ScopeGrants {
10
12
  if (!scopeIds.length)
11
13
  return 0;
12
14
  const where = { scope_id: (0, typeorm_1.In)(scopeIds) };
15
+ const roleWhere = { role: { scope_id: (0, typeorm_1.In)(scopeIds) } };
13
16
  return ((await manager.count(tenant_scope_entity_1.TenantScopeEntity, { where })) +
14
- (await manager.count(api_scope_entity_1.ApiScopeEntity, { where })));
17
+ (await manager.count(api_scope_entity_1.ApiScopeEntity, { where })) +
18
+ (await manager.count(user_role_entity_1.UserRoleEntity, { where: roleWhere })) +
19
+ (await manager.count(api_key_role_entity_1.ApiKeyRoleEntity, { where: roleWhere })));
15
20
  }
16
21
  static async withChildren(manager, scopeId) {
17
22
  const children = await manager.find(scope_entity_1.ScopeEntity, {
@@ -1 +1 @@
1
- {"version":3,"file":"scope.grants.js","sourceRoot":"","sources":["../../../src/admin/utilities/scope.grants.ts"],"names":[],"mappings":";;;AAAA,qCAA4C;AAC5C,2EAAsE;AACtE,mEAA+D;AAC/D,iFAA4E;AAG5E,MAAa,WAAW;IACtB,MAAM,CAAC,KAAK,CAAC,KAAK,CAChB,OAAsB,EACtB,QAAkB;QAElB,IAAI,CAAC,QAAQ,CAAC,MAAM;YAAE,OAAO,CAAC,CAAC;QAC/B,MAAM,KAAK,GAAG,EAAE,QAAQ,EAAE,IAAA,YAAE,EAAC,QAAQ,CAAC,EAAE,CAAC;QACzC,OAAO,CACL,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,uCAAiB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACnD,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,iCAAc,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CACjD,CAAC;IACJ,CAAC;IAGD,MAAM,CAAC,KAAK,CAAC,YAAY,CACvB,OAAsB,EACtB,OAAe;QAEf,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,0BAAW,EAAE;YAC/C,KAAK,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE;YAC7B,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE;SACrB,CAAC,CAAC;QACH,OAAO;YACL,QAAQ,EAAE,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACzD,UAAU,EAAE,QAAQ,CAAC,MAAM;SAC5B,CAAC;IACJ,CAAC;CACF;AA3BD,kCA2BC"}
1
+ {"version":3,"file":"scope.grants.js","sourceRoot":"","sources":["../../../src/admin/utilities/scope.grants.ts"],"names":[],"mappings":";;;AAAA,qCAA4C;AAC5C,iFAA2E;AAC3E,2EAAsE;AACtE,2EAAsE;AACtE,mEAA+D;AAC/D,iFAA4E;AAM5E,MAAa,WAAW;IACtB,MAAM,CAAC,KAAK,CAAC,KAAK,CAChB,OAAsB,EACtB,QAAkB;QAElB,IAAI,CAAC,QAAQ,CAAC,MAAM;YAAE,OAAO,CAAC,CAAC;QAC/B,MAAM,KAAK,GAAG,EAAE,QAAQ,EAAE,IAAA,YAAE,EAAC,QAAQ,CAAC,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAA,YAAE,EAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACvD,OAAO,CACL,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,uCAAiB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACnD,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,iCAAc,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAChD,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,iCAAc,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;YAC3D,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,sCAAgB,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAC9D,CAAC;IACJ,CAAC;IAGD,MAAM,CAAC,KAAK,CAAC,YAAY,CACvB,OAAsB,EACtB,OAAe;QAEf,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,0BAAW,EAAE;YAC/C,KAAK,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE;YAC7B,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE;SACrB,CAAC,CAAC;QACH,OAAO;YACL,QAAQ,EAAE,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACzD,UAAU,EAAE,QAAQ,CAAC,MAAM;SAC5B,CAAC;IACJ,CAAC;CACF;AA9BD,kCA8BC"}
@@ -1,11 +1,10 @@
1
1
  import { GlobalAdminRoles } from '../../auth/enums/global.admin.roles.enum';
2
+ import { HierarchyRole } from '../../auth/types/rbac.types';
3
+ import { RoleHierarchy } from '../../auth/utilities/role.hierarchy';
2
4
  export declare class TenantRolePolicy {
3
5
  static isReserved(identifier: string | null | undefined): boolean;
4
- static isPrivileged(identifier: string | null | undefined): boolean;
5
- static newPrivilegedGrants<R extends {
6
- id: string;
7
- identifier: string;
8
- }>(roles: R[], heldRoleIds?: Iterable<string>): R[];
6
+ static isPrivileged(role: Pick<HierarchyRole, 'identifier' | 'scope_id' | 'priority'> | null | undefined, hierarchy: RoleHierarchy): boolean;
7
+ static newPrivilegedGrants<R extends Pick<HierarchyRole, 'id' | 'identifier' | 'scope_id' | 'priority'>>(roles: R[], hierarchy: RoleHierarchy, heldRoleIds?: Iterable<string>): R[];
9
8
  static tenantUserSaveRole(input: {
10
9
  grantsPrivileged: boolean;
11
10
  emailChanged: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"tenant.role.policy.d.ts","sourceRoot":"","sources":["../../../src/admin/utilities/tenant.role.policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAO5E,qBAAa,gBAAgB;IAE3B,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO;IAKjE,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO;IAQnE,MAAM,CAAC,mBAAmB,CAAC,CAAC,SAAS;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,EACrE,KAAK,EAAE,CAAC,EAAE,EACV,WAAW,GAAE,QAAQ,CAAC,MAAM,CAAM,GACjC,CAAC,EAAE;IAYN,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAAE;QAC/B,gBAAgB,EAAE,OAAO,CAAC;QAC1B,YAAY,EAAE,OAAO,CAAC;QACtB,eAAe,EAAE,OAAO,CAAC;KAC1B,GAAG,gBAAgB;IAQpB,MAAM,CAAC,YAAY,CACjB,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAClC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC9B,OAAO;CAIX"}
1
+ {"version":3,"file":"tenant.role.policy.d.ts","sourceRoot":"","sources":["../../../src/admin/utilities/tenant.role.policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAE5E,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAKpE,qBAAa,gBAAgB;IAE3B,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO;IASjE,MAAM,CAAC,YAAY,CACjB,IAAI,EACA,IAAI,CAAC,aAAa,EAAE,YAAY,GAAG,UAAU,GAAG,UAAU,CAAC,GAC3D,IAAI,GACJ,SAAS,EACb,SAAS,EAAE,aAAa,GACvB,OAAO;IAOV,MAAM,CAAC,mBAAmB,CACxB,CAAC,SAAS,IAAI,CACZ,aAAa,EACb,IAAI,GAAG,YAAY,GAAG,UAAU,GAAG,UAAU,CAC9C,EAED,KAAK,EAAE,CAAC,EAAE,EACV,SAAS,EAAE,aAAa,EACxB,WAAW,GAAE,QAAQ,CAAC,MAAM,CAAM,GACjC,CAAC,EAAE;IAaN,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAAE;QAC/B,gBAAgB,EAAE,OAAO,CAAC;QAC1B,YAAY,EAAE,OAAO,CAAC;QACtB,eAAe,EAAE,OAAO,CAAC;KAC1B,GAAG,gBAAgB;IAQpB,MAAM,CAAC,YAAY,CACjB,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAClC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC9B,OAAO;CAIX"}
@@ -2,21 +2,22 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TenantRolePolicy = void 0;
4
4
  const global_admin_roles_enum_1 = require("../../auth/enums/global.admin.roles.enum");
5
- const role_tier_enum_1 = require("../../auth/enums/role.tier.enum");
6
5
  const tenant_role_enum_1 = require("../../auth/enums/tenant.role.enum");
7
6
  const RESERVED = new Set(Object.values(tenant_role_enum_1.TenantRole));
8
7
  class TenantRolePolicy {
9
8
  static isReserved(identifier) {
10
9
  return !!identifier && RESERVED.has(identifier);
11
10
  }
12
- static isPrivileged(identifier) {
13
- if (!identifier)
11
+ static isPrivileged(role, hierarchy) {
12
+ if (!role?.identifier)
14
13
  return false;
15
- return (RESERVED.has(identifier) || identifier.endsWith(`.${role_tier_enum_1.RoleTier.MANAGER}`));
14
+ if (RESERVED.has(role.identifier))
15
+ return true;
16
+ return !!role.scope_id && hierarchy.isTopRole(role);
16
17
  }
17
- static newPrivilegedGrants(roles, heldRoleIds = []) {
18
+ static newPrivilegedGrants(roles, hierarchy, heldRoleIds = []) {
18
19
  const held = new Set(heldRoleIds);
19
- return roles.filter((role) => !held.has(role.id) && TenantRolePolicy.isPrivileged(role.identifier));
20
+ return roles.filter((role) => !held.has(role.id) && TenantRolePolicy.isPrivileged(role, hierarchy));
20
21
  }
21
22
  static tenantUserSaveRole(input) {
22
23
  if (input.grantsPrivileged)
@@ -1 +1 @@
1
- {"version":3,"file":"tenant.role.policy.js","sourceRoot":"","sources":["../../../src/admin/utilities/tenant.role.policy.ts"],"names":[],"mappings":";;;AAAA,sFAA4E;AAC5E,oEAA2D;AAC3D,wEAA+D;AAE/D,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAS,MAAM,CAAC,MAAM,CAAC,6BAAU,CAAC,CAAC,CAAC;AAG5D,MAAa,gBAAgB;IAE3B,MAAM,CAAC,UAAU,CAAC,UAAqC;QACrD,OAAO,CAAC,CAAC,UAAU,IAAI,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAClD,CAAC;IAGD,MAAM,CAAC,YAAY,CAAC,UAAqC;QACvD,IAAI,CAAC,UAAU;YAAE,OAAO,KAAK,CAAC;QAC9B,OAAO,CACL,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,yBAAQ,CAAC,OAAO,EAAE,CAAC,CACxE,CAAC;IACJ,CAAC;IAGD,MAAM,CAAC,mBAAmB,CACxB,KAAU,EACV,cAAgC,EAAE;QAElC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;QAClC,OAAO,KAAK,CAAC,MAAM,CACjB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,gBAAgB,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAC/E,CAAC;IACJ,CAAC;IAOD,MAAM,CAAC,kBAAkB,CAAC,KAIzB;QACC,IAAI,KAAK,CAAC,gBAAgB;YAAE,OAAO,0CAAgB,CAAC,kBAAkB,CAAC;QACvE,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,eAAe;YAC7C,OAAO,0CAAgB,CAAC,kBAAkB,CAAC;QAC7C,OAAO,0CAAgB,CAAC,YAAY,CAAC;IACvC,CAAC;IAGD,MAAM,CAAC,YAAY,CACjB,OAAkC,EAClC,IAA+B;QAE/B,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;QACtD,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;IAC9D,CAAC;CACF;AAjDD,4CAiDC"}
1
+ {"version":3,"file":"tenant.role.policy.js","sourceRoot":"","sources":["../../../src/admin/utilities/tenant.role.policy.ts"],"names":[],"mappings":";;;AAAA,sFAA4E;AAC5E,wEAA+D;AAI/D,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAS,MAAM,CAAC,MAAM,CAAC,6BAAU,CAAC,CAAC,CAAC;AAG5D,MAAa,gBAAgB;IAE3B,MAAM,CAAC,UAAU,CAAC,UAAqC;QACrD,OAAO,CAAC,CAAC,UAAU,IAAI,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAClD,CAAC;IAOD,MAAM,CAAC,YAAY,CACjB,IAGa,EACb,SAAwB;QAExB,IAAI,CAAC,IAAI,EAAE,UAAU;YAAE,OAAO,KAAK,CAAC;QACpC,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;YAAE,OAAO,IAAI,CAAC;QAC/C,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;IAGD,MAAM,CAAC,mBAAmB,CAMxB,KAAU,EACV,SAAwB,EACxB,cAAgC,EAAE;QAElC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;QAClC,OAAO,KAAK,CAAC,MAAM,CACjB,CAAC,IAAI,EAAE,EAAE,CACP,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,gBAAgB,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CACvE,CAAC;IACJ,CAAC;IAOD,MAAM,CAAC,kBAAkB,CAAC,KAIzB;QACC,IAAI,KAAK,CAAC,gBAAgB;YAAE,OAAO,0CAAgB,CAAC,kBAAkB,CAAC;QACvE,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,eAAe;YAC7C,OAAO,0CAAgB,CAAC,kBAAkB,CAAC;QAC7C,OAAO,0CAAgB,CAAC,YAAY,CAAC;IACvC,CAAC;IAGD,MAAM,CAAC,YAAY,CACjB,OAAkC,EAClC,IAA+B;QAE/B,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;QACtD,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;IAC9D,CAAC;CACF;AAjED,4CAiEC"}
@@ -1 +1 @@
1
- {"version":3,"file":"auth.controller.d.ts","sourceRoot":"","sources":["../../../src/auth/controllers/auth.controller.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAElF,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAS1D,qBAGa,cAAc;IAEvB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,uBAAuB;IACxC,OAAO,CAAC,QAAQ,CAAC,uBAAuB;IACxC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,wBAAwB;gBALxB,WAAW,EAAE,WAAW,EACxB,iBAAiB,EAAE,iBAAiB,EACpC,uBAAuB,EAAE,uBAAuB,EAChD,uBAAuB,EAAE,uBAAuB,EAChD,QAAQ,EAAE,oBAAoB,EAC9B,wBAAwB,EAAE,wBAAwB;IAW/D,EAAE,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAwBjC,KAAK,CACD,GAAG,EAAE,QAAQ,EACd,OAAO,EAAE,OAAO,GACtB,OAAO,CAAC,aAAa,CAAC;IAiBnB,WAAW,CACP,GAAG,EAAE,cAAc,EACpB,OAAO,EAAE,OAAO,GACtB,OAAO,CAAC,aAAa,CAAC;IAenB,QAAQ,CACJ,GAAG,EAAE,WAAW,EACjB,OAAO,EAAE,OAAO,GACtB,OAAO,CAAC,aAAa,CAAC;IAiBnB,OAAO,CACH,GAAG,EAAE,eAAe,EACrB,OAAO,EAAE,OAAO,GACtB,OAAO,CAAC,aAAa,CAAC;IAgBnB,MAAM,CAAS,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,IAAI,CAAA;KAAE,CAAC;IAchE,cAAc,CACV,GAAG,EAAE,iBAAiB,GAC7B,OAAO,CAAC;QAAE,OAAO,EAAE,IAAI,CAAA;KAAE,CAAC;IAevB,wBAAwB,CACrB,OAAO,EAAE,OAAO,GACtB,OAAO,CAAC;QAAE,OAAO,EAAE,IAAI,CAAA;KAAE,CAAC;IAgBvB,WAAW,CACP,GAAG,EAAE,cAAc,EACpB,OAAO,EAAE,OAAO,GACtB,OAAO,CAAC;QAAE,OAAO,EAAE,IAAI,CAAA;KAAE,CAAC;YAQf,MAAM;CASrB"}
1
+ {"version":3,"file":"auth.controller.d.ts","sourceRoot":"","sources":["../../../src/auth/controllers/auth.controller.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAElF,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAS1D,qBAGa,cAAc;IAEvB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,uBAAuB;IACxC,OAAO,CAAC,QAAQ,CAAC,uBAAuB;IACxC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,wBAAwB;gBALxB,WAAW,EAAE,WAAW,EACxB,iBAAiB,EAAE,iBAAiB,EACpC,uBAAuB,EAAE,uBAAuB,EAChD,uBAAuB,EAAE,uBAAuB,EAChD,QAAQ,EAAE,oBAAoB,EAC9B,wBAAwB,EAAE,wBAAwB;IAW/D,EAAE,IAAI,OAAO,CAAC,kBAAkB,CAAC;IA2BjC,KAAK,CACD,GAAG,EAAE,QAAQ,EACd,OAAO,EAAE,OAAO,GACtB,OAAO,CAAC,aAAa,CAAC;IAiBnB,WAAW,CACP,GAAG,EAAE,cAAc,EACpB,OAAO,EAAE,OAAO,GACtB,OAAO,CAAC,aAAa,CAAC;IAenB,QAAQ,CACJ,GAAG,EAAE,WAAW,EACjB,OAAO,EAAE,OAAO,GACtB,OAAO,CAAC,aAAa,CAAC;IAiBnB,OAAO,CACH,GAAG,EAAE,eAAe,EACrB,OAAO,EAAE,OAAO,GACtB,OAAO,CAAC,aAAa,CAAC;IAgBnB,MAAM,CAAS,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,IAAI,CAAA;KAAE,CAAC;IAchE,cAAc,CACV,GAAG,EAAE,iBAAiB,GAC7B,OAAO,CAAC;QAAE,OAAO,EAAE,IAAI,CAAA;KAAE,CAAC;IAevB,wBAAwB,CACrB,OAAO,EAAE,OAAO,GACtB,OAAO,CAAC;QAAE,OAAO,EAAE,IAAI,CAAA;KAAE,CAAC;IAgBvB,WAAW,CACP,GAAG,EAAE,cAAc,EACpB,OAAO,EAAE,OAAO,GACtB,OAAO,CAAC;QAAE,OAAO,EAAE,IAAI,CAAA;KAAE,CAAC;YAQf,MAAM;CASrB"}