@neohm/nestend 4.0.2 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (224) hide show
  1. package/README.md +37 -3
  2. package/dist/admin/controllers/admin.tenant.user.controller.d.ts +8 -1
  3. package/dist/admin/controllers/admin.tenant.user.controller.d.ts.map +1 -1
  4. package/dist/admin/controllers/admin.tenant.user.controller.js +75 -7
  5. package/dist/admin/controllers/admin.tenant.user.controller.js.map +1 -1
  6. package/dist/admin/dtos/add.client.membership.dto.d.ts +6 -0
  7. package/dist/admin/dtos/add.client.membership.dto.d.ts.map +1 -0
  8. package/dist/admin/dtos/add.client.membership.dto.js +41 -0
  9. package/dist/admin/dtos/add.client.membership.dto.js.map +1 -0
  10. package/dist/admin/es6.classes.d.ts +4 -2
  11. package/dist/admin/es6.classes.d.ts.map +1 -1
  12. package/dist/admin/es6.classes.js +4 -0
  13. package/dist/admin/es6.classes.js.map +1 -1
  14. package/dist/admin/libraries/bulk.user.data.processor.d.ts.map +1 -1
  15. package/dist/admin/libraries/bulk.user.data.processor.js +13 -5
  16. package/dist/admin/libraries/bulk.user.data.processor.js.map +1 -1
  17. package/dist/admin/libraries/client.membership.data.processor.d.ts +14 -0
  18. package/dist/admin/libraries/client.membership.data.processor.d.ts.map +1 -0
  19. package/dist/admin/libraries/client.membership.data.processor.js +56 -0
  20. package/dist/admin/libraries/client.membership.data.processor.js.map +1 -0
  21. package/dist/admin/libraries/client.user.data.processor.d.ts +1 -2
  22. package/dist/admin/libraries/client.user.data.processor.d.ts.map +1 -1
  23. package/dist/admin/libraries/client.user.data.processor.js +24 -31
  24. package/dist/admin/libraries/client.user.data.processor.js.map +1 -1
  25. package/dist/admin/libraries/client.user.delete.processor.d.ts.map +1 -1
  26. package/dist/admin/libraries/client.user.delete.processor.js +4 -0
  27. package/dist/admin/libraries/client.user.delete.processor.js.map +1 -1
  28. package/dist/admin/libraries/client.user.list.processor.d.ts.map +1 -1
  29. package/dist/admin/libraries/client.user.list.processor.js +14 -2
  30. package/dist/admin/libraries/client.user.list.processor.js.map +1 -1
  31. package/dist/admin/libraries/tenant.delete.processor.d.ts.map +1 -1
  32. package/dist/admin/libraries/tenant.delete.processor.js +22 -9
  33. package/dist/admin/libraries/tenant.delete.processor.js.map +1 -1
  34. package/dist/admin/libraries/user.data.processor.d.ts.map +1 -1
  35. package/dist/admin/libraries/user.data.processor.js +4 -1
  36. package/dist/admin/libraries/user.data.processor.js.map +1 -1
  37. package/dist/auth/auth.module.d.ts.map +1 -1
  38. package/dist/auth/auth.module.js +22 -3
  39. package/dist/auth/auth.module.js.map +1 -1
  40. package/dist/auth/controllers/auth.controller.d.ts +8 -7
  41. package/dist/auth/controllers/auth.controller.d.ts.map +1 -1
  42. package/dist/auth/controllers/auth.controller.js +36 -12
  43. package/dist/auth/controllers/auth.controller.js.map +1 -1
  44. package/dist/auth/controllers/impersonation.controller.d.ts +2 -2
  45. package/dist/auth/controllers/impersonation.controller.d.ts.map +1 -1
  46. package/dist/auth/controllers/tenant.invitation.controller.d.ts +18 -0
  47. package/dist/auth/controllers/tenant.invitation.controller.d.ts.map +1 -0
  48. package/dist/auth/controllers/tenant.invitation.controller.js +120 -0
  49. package/dist/auth/controllers/tenant.invitation.controller.js.map +1 -0
  50. package/dist/auth/controllers/tenant.member.controller.d.ts +18 -0
  51. package/dist/auth/controllers/tenant.member.controller.d.ts.map +1 -0
  52. package/dist/auth/controllers/tenant.member.controller.js +129 -0
  53. package/dist/auth/controllers/tenant.member.controller.js.map +1 -0
  54. package/dist/auth/controllers/user.invitation.controller.d.ts +12 -0
  55. package/dist/auth/controllers/user.invitation.controller.d.ts.map +1 -0
  56. package/dist/auth/controllers/user.invitation.controller.js +76 -0
  57. package/dist/auth/controllers/user.invitation.controller.js.map +1 -0
  58. package/dist/auth/controllers/user.organization.controller.d.ts +17 -0
  59. package/dist/auth/controllers/user.organization.controller.d.ts.map +1 -0
  60. package/dist/auth/controllers/user.organization.controller.js +88 -0
  61. package/dist/auth/controllers/user.organization.controller.js.map +1 -0
  62. package/dist/auth/dtos/invite.tenant.user.dto.d.ts +6 -0
  63. package/dist/auth/dtos/invite.tenant.user.dto.d.ts.map +1 -0
  64. package/dist/auth/dtos/invite.tenant.user.dto.js +45 -0
  65. package/dist/auth/dtos/invite.tenant.user.dto.js.map +1 -0
  66. package/dist/auth/dtos/member.roles.dto.d.ts +4 -0
  67. package/dist/auth/dtos/member.roles.dto.d.ts.map +1 -0
  68. package/dist/auth/dtos/member.roles.dto.js +28 -0
  69. package/dist/auth/dtos/member.roles.dto.js.map +1 -0
  70. package/dist/auth/dtos/switch.organization.dto.d.ts +5 -0
  71. package/dist/auth/dtos/switch.organization.dto.d.ts.map +1 -0
  72. package/dist/auth/dtos/switch.organization.dto.js +25 -0
  73. package/dist/auth/dtos/switch.organization.dto.js.map +1 -0
  74. package/dist/auth/dtos/tenant.invitation.list.dto.d.ts +5 -0
  75. package/dist/auth/dtos/tenant.invitation.list.dto.d.ts.map +1 -0
  76. package/dist/auth/dtos/tenant.invitation.list.dto.js +27 -0
  77. package/dist/auth/dtos/tenant.invitation.list.dto.js.map +1 -0
  78. package/dist/auth/dtos/tenant.member.list.dto.d.ts +5 -0
  79. package/dist/auth/dtos/tenant.member.list.dto.d.ts.map +1 -0
  80. package/dist/auth/dtos/tenant.member.list.dto.js +27 -0
  81. package/dist/auth/dtos/tenant.member.list.dto.js.map +1 -0
  82. package/dist/auth/entities/tenant.invitation.entity.d.ts +13 -0
  83. package/dist/auth/entities/tenant.invitation.entity.d.ts.map +1 -0
  84. package/dist/auth/entities/tenant.invitation.entity.js +52 -0
  85. package/dist/auth/entities/tenant.invitation.entity.js.map +1 -0
  86. package/dist/auth/entities/tenant.user.entity.d.ts +8 -0
  87. package/dist/auth/entities/tenant.user.entity.d.ts.map +1 -0
  88. package/dist/auth/entities/tenant.user.entity.js +35 -0
  89. package/dist/auth/entities/tenant.user.entity.js.map +1 -0
  90. package/dist/auth/entities/user.entity.d.ts +5 -0
  91. package/dist/auth/entities/user.entity.d.ts.map +1 -1
  92. package/dist/auth/entities/user.entity.js +17 -0
  93. package/dist/auth/entities/user.entity.js.map +1 -1
  94. package/dist/auth/entities/user.role.entity.d.ts +2 -2
  95. package/dist/auth/entities/user.role.entity.d.ts.map +1 -1
  96. package/dist/auth/entities/user.role.entity.js +2 -2
  97. package/dist/auth/entities/user.role.entity.js.map +1 -1
  98. package/dist/auth/enums/auth.default.enum.d.ts +3 -1
  99. package/dist/auth/enums/auth.default.enum.d.ts.map +1 -1
  100. package/dist/auth/enums/auth.default.enum.js +2 -0
  101. package/dist/auth/enums/auth.default.enum.js.map +1 -1
  102. package/dist/auth/enums/tenant.invitation.default.enum.d.ts +4 -0
  103. package/dist/auth/enums/tenant.invitation.default.enum.d.ts.map +1 -0
  104. package/dist/auth/enums/tenant.invitation.default.enum.js +8 -0
  105. package/dist/auth/enums/tenant.invitation.default.enum.js.map +1 -0
  106. package/dist/auth/enums/tenant.invitation.status.enum.d.ts +7 -0
  107. package/dist/auth/enums/tenant.invitation.status.enum.d.ts.map +1 -0
  108. package/dist/auth/enums/tenant.invitation.status.enum.js +11 -0
  109. package/dist/auth/enums/tenant.invitation.status.enum.js.map +1 -0
  110. package/dist/auth/enums/user.type.enum.d.ts.map +1 -1
  111. package/dist/auth/enums/user.type.enum.js.map +1 -1
  112. package/dist/auth/es6.classes.d.ts +15 -4
  113. package/dist/auth/es6.classes.d.ts.map +1 -1
  114. package/dist/auth/es6.classes.js +35 -2
  115. package/dist/auth/es6.classes.js.map +1 -1
  116. package/dist/auth/helpers/auth.d.ts +1 -1
  117. package/dist/auth/helpers/auth.d.ts.map +1 -1
  118. package/dist/auth/helpers/auth.js +7 -4
  119. package/dist/auth/helpers/auth.js.map +1 -1
  120. package/dist/auth/processors/change.password.data.processor.d.ts.map +1 -1
  121. package/dist/auth/processors/change.password.data.processor.js +1 -0
  122. package/dist/auth/processors/change.password.data.processor.js.map +1 -1
  123. package/dist/auth/processors/google.user.data.processor.js +1 -1
  124. package/dist/auth/processors/google.user.data.processor.js.map +1 -1
  125. package/dist/auth/processors/register.user.data.processor.js +1 -1
  126. package/dist/auth/processors/register.user.data.processor.js.map +1 -1
  127. package/dist/auth/processors/tenant.invitation.data.processor.d.ts +20 -0
  128. package/dist/auth/processors/tenant.invitation.data.processor.d.ts.map +1 -0
  129. package/dist/auth/processors/tenant.invitation.data.processor.js +112 -0
  130. package/dist/auth/processors/tenant.invitation.data.processor.js.map +1 -0
  131. package/dist/auth/processors/tenant.invitation.list.processor.d.ts +13 -0
  132. package/dist/auth/processors/tenant.invitation.list.processor.d.ts.map +1 -0
  133. package/dist/auth/processors/tenant.invitation.list.processor.js +67 -0
  134. package/dist/auth/processors/tenant.invitation.list.processor.js.map +1 -0
  135. package/dist/auth/processors/tenant.member.list.processor.d.ts +13 -0
  136. package/dist/auth/processors/tenant.member.list.processor.d.ts.map +1 -0
  137. package/dist/auth/processors/tenant.member.list.processor.js +66 -0
  138. package/dist/auth/processors/tenant.member.list.processor.js.map +1 -0
  139. package/dist/auth/services/admin.auth.service.d.ts.map +1 -1
  140. package/dist/auth/services/admin.auth.service.js +2 -2
  141. package/dist/auth/services/admin.auth.service.js.map +1 -1
  142. package/dist/auth/services/auth.service.d.ts +5 -0
  143. package/dist/auth/services/auth.service.d.ts.map +1 -1
  144. package/dist/auth/services/auth.service.js +51 -13
  145. package/dist/auth/services/auth.service.js.map +1 -1
  146. package/dist/auth/services/impersonation.service.d.ts +2 -2
  147. package/dist/auth/services/impersonation.service.d.ts.map +1 -1
  148. package/dist/auth/services/impersonation.service.js +1 -1
  149. package/dist/auth/services/impersonation.service.js.map +1 -1
  150. package/dist/auth/services/tenant.invitation.service.d.ts +26 -0
  151. package/dist/auth/services/tenant.invitation.service.d.ts.map +1 -0
  152. package/dist/auth/services/tenant.invitation.service.js +212 -0
  153. package/dist/auth/services/tenant.invitation.service.js.map +1 -0
  154. package/dist/auth/services/tenant.membership.service.d.ts +29 -0
  155. package/dist/auth/services/tenant.membership.service.d.ts.map +1 -0
  156. package/dist/auth/services/tenant.membership.service.js +178 -0
  157. package/dist/auth/services/tenant.membership.service.js.map +1 -0
  158. package/dist/auth/types/auth.types.d.ts +24 -2
  159. package/dist/auth/types/auth.types.d.ts.map +1 -1
  160. package/dist/auth/utilities/access.revocation.d.ts +2 -0
  161. package/dist/auth/utilities/access.revocation.d.ts.map +1 -1
  162. package/dist/auth/utilities/access.revocation.js +12 -0
  163. package/dist/auth/utilities/access.revocation.js.map +1 -1
  164. package/dist/auth/utilities/auth.utilities.d.ts +1 -0
  165. package/dist/auth/utilities/auth.utilities.d.ts.map +1 -1
  166. package/dist/auth/utilities/auth.utilities.js +4 -0
  167. package/dist/auth/utilities/auth.utilities.js.map +1 -1
  168. package/dist/auth/utilities/tenant.access.d.ts +8 -0
  169. package/dist/auth/utilities/tenant.access.d.ts.map +1 -0
  170. package/dist/auth/utilities/tenant.access.js +61 -0
  171. package/dist/auth/utilities/tenant.access.js.map +1 -0
  172. package/dist/common/es6.classes.d.ts +2 -2
  173. package/dist/constants/entity.constants.d.ts +2 -0
  174. package/dist/constants/entity.constants.d.ts.map +1 -1
  175. package/dist/constants/entity.constants.js +2 -0
  176. package/dist/constants/entity.constants.js.map +1 -1
  177. package/dist/constants/entity.maps.d.ts +4 -0
  178. package/dist/constants/entity.maps.d.ts.map +1 -1
  179. package/dist/constants/entity.maps.js +4 -0
  180. package/dist/constants/entity.maps.js.map +1 -1
  181. package/dist/constants/job.constants.d.ts +1 -0
  182. package/dist/constants/job.constants.d.ts.map +1 -1
  183. package/dist/constants/job.constants.js +1 -0
  184. package/dist/constants/job.constants.js.map +1 -1
  185. package/dist/index.d.ts +6 -1
  186. package/dist/index.d.ts.map +1 -1
  187. package/dist/index.js +14 -3
  188. package/dist/index.js.map +1 -1
  189. package/dist/migrations/1749600000003.CreateSysUsersTable.d.ts.map +1 -1
  190. package/dist/migrations/1749600000003.CreateSysUsersTable.js +4 -0
  191. package/dist/migrations/1749600000003.CreateSysUsersTable.js.map +1 -1
  192. package/dist/migrations/1749600000006.CreateSysUserRolesJoinTable.d.ts.map +1 -1
  193. package/dist/migrations/1749600000006.CreateSysUserRolesJoinTable.js +8 -1
  194. package/dist/migrations/1749600000006.CreateSysUserRolesJoinTable.js.map +1 -1
  195. package/dist/migrations/1749600000030.CreateSysTenantUsersTable.d.ts +6 -0
  196. package/dist/migrations/1749600000030.CreateSysTenantUsersTable.d.ts.map +1 -0
  197. package/dist/migrations/1749600000030.CreateSysTenantUsersTable.js +33 -0
  198. package/dist/migrations/1749600000030.CreateSysTenantUsersTable.js.map +1 -0
  199. package/dist/migrations/1749600000031.CreateSysTenantInvitationsTable.d.ts +6 -0
  200. package/dist/migrations/1749600000031.CreateSysTenantInvitationsTable.d.ts.map +1 -0
  201. package/dist/migrations/1749600000031.CreateSysTenantInvitationsTable.js +43 -0
  202. package/dist/migrations/1749600000031.CreateSysTenantInvitationsTable.js.map +1 -0
  203. package/dist/notification/enums/email.notification.default.enum.d.ts +1 -0
  204. package/dist/notification/enums/email.notification.default.enum.d.ts.map +1 -1
  205. package/dist/notification/enums/email.notification.default.enum.js +1 -0
  206. package/dist/notification/enums/email.notification.default.enum.js.map +1 -1
  207. package/dist/notification/enums/email.template.identifier.enum.d.ts +2 -1
  208. package/dist/notification/enums/email.template.identifier.enum.d.ts.map +1 -1
  209. package/dist/notification/enums/email.template.identifier.enum.js +1 -0
  210. package/dist/notification/enums/email.template.identifier.enum.js.map +1 -1
  211. package/dist/notification/es6.classes.d.ts +2 -1
  212. package/dist/notification/es6.classes.d.ts.map +1 -1
  213. package/dist/notification/es6.classes.js +6 -1
  214. package/dist/notification/es6.classes.js.map +1 -1
  215. package/dist/notification/jobs/tenant.user.invited.mail.job.d.ts +14 -0
  216. package/dist/notification/jobs/tenant.user.invited.mail.job.d.ts.map +1 -0
  217. package/dist/notification/jobs/tenant.user.invited.mail.job.js +57 -0
  218. package/dist/notification/jobs/tenant.user.invited.mail.job.js.map +1 -0
  219. package/dist/notification/notification.module.d.ts.map +1 -1
  220. package/dist/notification/notification.module.js +3 -1
  221. package/dist/notification/notification.module.js.map +1 -1
  222. package/dist/notification/types/email.notification.types.d.ts +9 -0
  223. package/dist/notification/types/email.notification.types.d.ts.map +1 -1
  224. package/package.json +1 -1
@@ -2,11 +2,11 @@ import type { Request } from 'express';
2
2
  import { TenantEntity } from '../../tenant/entities/tenant.entity';
3
3
  import { ImpersonationLoginDto } from '../dtos/impersonation.login.dto';
4
4
  import { ImpersonationService } from '../services/impersonation.service';
5
- import { ImpersonationSession } from '../types/auth.types';
5
+ import { OrganizationSession } from '../types/auth.types';
6
6
  export declare class ImpersonationController {
7
7
  private readonly impersonationService;
8
8
  constructor(impersonationService: ImpersonationService);
9
- login(dto: ImpersonationLoginDto, request: Request): Promise<ImpersonationSession>;
9
+ login(dto: ImpersonationLoginDto, request: Request): Promise<OrganizationSession>;
10
10
  tenants(): Promise<TenantEntity[]>;
11
11
  private contextOf;
12
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"impersonation.controller.d.ts","sourceRoot":"","sources":["../../../src/auth/controllers/impersonation.controller.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAqB,MAAM,qBAAqB,CAAC;AAE9E,qBAEa,uBAAuB;IACtB,OAAO,CAAC,QAAQ,CAAC,oBAAoB;gBAApB,oBAAoB,EAAE,oBAAoB;IAQjE,KAAK,CACD,GAAG,EAAE,qBAAqB,EAC3B,OAAO,EAAE,OAAO,GACtB,OAAO,CAAC,oBAAoB,CAAC;IAW1B,OAAO,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAIxC,OAAO,CAAC,SAAS;CAMlB"}
1
+ {"version":3,"file":"impersonation.controller.d.ts","sourceRoot":"","sources":["../../../src/auth/controllers/impersonation.controller.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAqB,MAAM,qBAAqB,CAAC;AAE7E,qBAEa,uBAAuB;IACtB,OAAO,CAAC,QAAQ,CAAC,oBAAoB;gBAApB,oBAAoB,EAAE,oBAAoB;IAQjE,KAAK,CACD,GAAG,EAAE,qBAAqB,EAC3B,OAAO,EAAE,OAAO,GACtB,OAAO,CAAC,mBAAmB,CAAC;IAWzB,OAAO,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAIxC,OAAO,CAAC,SAAS;CAMlB"}
@@ -0,0 +1,18 @@
1
+ import { CommonParamsDto } from '../../common/dtos/common.params.dto';
2
+ import { ListFilterService } from '../../common/services/list.filter.service';
3
+ import { InviteTenantUserDto } from '../dtos/invite.tenant.user.dto';
4
+ import { TenantInvitationListDto } from '../dtos/tenant.invitation.list.dto';
5
+ import { AuthService } from '../services/auth.service';
6
+ import { TenantInvitationService } from '../services/tenant.invitation.service';
7
+ export declare class TenantInvitationController {
8
+ private readonly authService;
9
+ private readonly tenantInvitationService;
10
+ private readonly listFilterService;
11
+ constructor(authService: AuthService, tenantInvitationService: TenantInvitationService, listFilterService: ListFilterService);
12
+ invite(dto: InviteTenantUserDto): Promise<import("../..").TenantInvitationEntity>;
13
+ roles(): Promise<import("../..").SystemRoleEntity[]>;
14
+ list(dto: TenantInvitationListDto): Promise<import("../..").CommonListResult>;
15
+ resend({ id }: CommonParamsDto): Promise<import("../..").TenantInvitationEntity>;
16
+ revoke({ id }: CommonParamsDto): Promise<import("../..").TenantInvitationEntity>;
17
+ }
18
+ //# sourceMappingURL=tenant.invitation.controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant.invitation.controller.d.ts","sourceRoot":"","sources":["../../../src/auth/controllers/tenant.invitation.controller.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAI7E,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAGhF,qBAGa,0BAA0B;IAEnC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,uBAAuB;IACxC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;gBAFjB,WAAW,EAAE,WAAW,EACxB,uBAAuB,EAAE,uBAAuB,EAChD,iBAAiB,EAAE,iBAAiB;IASjD,MAAM,CAAS,GAAG,EAAE,mBAAmB;IAgBvC,KAAK;IAUL,IAAI,CAAS,GAAG,EAAE,uBAAuB;IAgBzC,MAAM,CAAU,EAAE,EAAE,EAAE,EAAE,eAAe;IAgBvC,MAAM,CAAU,EAAE,EAAE,EAAE,EAAE,eAAe;CAU9C"}
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.TenantInvitationController = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const swagger_1 = require("@nestjs/swagger");
18
+ const common_params_dto_1 = require("../../common/dtos/common.params.dto");
19
+ const list_filter_service_1 = require("../../common/services/list.filter.service");
20
+ const invite_tenant_user_dto_1 = require("../dtos/invite.tenant.user.dto");
21
+ const tenant_invitation_list_dto_1 = require("../dtos/tenant.invitation.list.dto");
22
+ const tenant_role_enum_1 = require("../enums/tenant.role.enum");
23
+ const tenant_invitation_data_processor_1 = require("../processors/tenant.invitation.data.processor");
24
+ const tenant_invitation_list_processor_1 = require("../processors/tenant.invitation.list.processor");
25
+ const auth_service_1 = require("../services/auth.service");
26
+ const tenant_invitation_service_1 = require("../services/tenant.invitation.service");
27
+ let TenantInvitationController = class TenantInvitationController {
28
+ constructor(authService, tenantInvitationService, listFilterService) {
29
+ this.authService = authService;
30
+ this.tenantInvitationService = tenantInvitationService;
31
+ this.listFilterService = listFilterService;
32
+ }
33
+ async invite(dto) {
34
+ const { user } = await this.authService.validateRole(tenant_role_enum_1.TenantRole.GLOBAL_ADMIN);
35
+ return new tenant_invitation_data_processor_1.TenantInvitationDataProcessor(user, this.tenantInvitationService).process(dto);
36
+ }
37
+ async roles() {
38
+ await this.authService.validateRole(tenant_role_enum_1.TenantRole.GLOBAL_ADMIN);
39
+ return this.tenantInvitationService.grantableRoles();
40
+ }
41
+ async list(dto) {
42
+ const { user } = await this.authService.validateRole(tenant_role_enum_1.TenantRole.GLOBAL_ADMIN);
43
+ return new tenant_invitation_list_processor_1.TenantInvitationListProcessor(this.listFilterService).process({
44
+ ...dto,
45
+ tenant_id: user.organization_id,
46
+ });
47
+ }
48
+ async resend({ id }) {
49
+ const { user } = await this.authService.validateRole(tenant_role_enum_1.TenantRole.GLOBAL_ADMIN);
50
+ return this.tenantInvitationService.resend(id, user.organization_id, user.id);
51
+ }
52
+ async revoke({ id }) {
53
+ const { user } = await this.authService.validateRole(tenant_role_enum_1.TenantRole.GLOBAL_ADMIN);
54
+ return this.tenantInvitationService.revoke(id, user.organization_id, user.id);
55
+ }
56
+ };
57
+ exports.TenantInvitationController = TenantInvitationController;
58
+ __decorate([
59
+ (0, common_1.Post)(),
60
+ (0, swagger_1.ApiOperation)({
61
+ summary: 'Invite an email into the session organization.',
62
+ description: 'The roles in `role_ids` are granted in this organization when the invitee accepts. An email with no account gets one — named `full_name`, with a random one-time password mailed to it that must be changed at first sign-in. Refused for an existing member, a system account, or an email with a pending invitation here. Requires the `global.admin` tenant role.',
63
+ }),
64
+ __param(0, (0, common_1.Body)()),
65
+ __metadata("design:type", Function),
66
+ __metadata("design:paramtypes", [invite_tenant_user_dto_1.InviteTenantUserDto]),
67
+ __metadata("design:returntype", Promise)
68
+ ], TenantInvitationController.prototype, "invite", null);
69
+ __decorate([
70
+ (0, common_1.Get)('roles'),
71
+ (0, swagger_1.ApiOperation)({
72
+ summary: 'Roles an invitation may grant.',
73
+ description: 'The active `sys_roles` catalogue, for the invite form. Requires the `global.admin` tenant role.',
74
+ }),
75
+ __metadata("design:type", Function),
76
+ __metadata("design:paramtypes", []),
77
+ __metadata("design:returntype", Promise)
78
+ ], TenantInvitationController.prototype, "roles", null);
79
+ __decorate([
80
+ (0, common_1.Post)('list'),
81
+ (0, swagger_1.ApiOperation)({
82
+ summary: "List the session organization's invitations.",
83
+ description: 'Requires the `global.admin` tenant role.',
84
+ }),
85
+ __param(0, (0, common_1.Body)()),
86
+ __metadata("design:type", Function),
87
+ __metadata("design:paramtypes", [tenant_invitation_list_dto_1.TenantInvitationListDto]),
88
+ __metadata("design:returntype", Promise)
89
+ ], TenantInvitationController.prototype, "list", null);
90
+ __decorate([
91
+ (0, common_1.Post)(':id/resend'),
92
+ (0, swagger_1.ApiOperation)({
93
+ summary: 'Give a pending invitation a fresh expiry.',
94
+ description: 'Also revives one that expired unanswered. When the invitation created the account and nobody has signed in to it yet, a fresh one-time password is mailed. Requires the `global.admin` tenant role.',
95
+ }),
96
+ __param(0, (0, common_1.Param)()),
97
+ __metadata("design:type", Function),
98
+ __metadata("design:paramtypes", [common_params_dto_1.CommonParamsDto]),
99
+ __metadata("design:returntype", Promise)
100
+ ], TenantInvitationController.prototype, "resend", null);
101
+ __decorate([
102
+ (0, common_1.Delete)(':id'),
103
+ (0, swagger_1.ApiOperation)({
104
+ summary: 'Revoke a pending invitation.',
105
+ description: 'Requires the `global.admin` tenant role.',
106
+ }),
107
+ __param(0, (0, common_1.Param)()),
108
+ __metadata("design:type", Function),
109
+ __metadata("design:paramtypes", [common_params_dto_1.CommonParamsDto]),
110
+ __metadata("design:returntype", Promise)
111
+ ], TenantInvitationController.prototype, "revoke", null);
112
+ exports.TenantInvitationController = TenantInvitationController = __decorate([
113
+ (0, swagger_1.ApiTags)('Organization Invitations'),
114
+ (0, swagger_1.ApiBearerAuth)(),
115
+ (0, common_1.Controller)('api/organization/invitations'),
116
+ __metadata("design:paramtypes", [auth_service_1.AuthService,
117
+ tenant_invitation_service_1.TenantInvitationService,
118
+ list_filter_service_1.ListFilterService])
119
+ ], TenantInvitationController);
120
+ //# sourceMappingURL=tenant.invitation.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant.invitation.controller.js","sourceRoot":"","sources":["../../../src/auth/controllers/tenant.invitation.controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { ListFilterService } from '../../common/services/list.filter.service';
2
+ import { MemberRolesDto } from '../dtos/member.roles.dto';
3
+ import { TenantMemberListDto } from '../dtos/tenant.member.list.dto';
4
+ import { AuthService } from '../services/auth.service';
5
+ import { TenantMembershipService } from '../services/tenant.membership.service';
6
+ export declare class TenantMemberController {
7
+ private readonly authService;
8
+ private readonly tenantMembershipService;
9
+ private readonly listFilterService;
10
+ constructor(authService: AuthService, tenantMembershipService: TenantMembershipService, listFilterService: ListFilterService);
11
+ list(dto: TenantMemberListDto): Promise<import("../..").CommonListResult>;
12
+ setRoles(userId: string, dto: MemberRolesDto): Promise<import("../..").SystemRoleEntity[]>;
13
+ deactivate(userId: string): Promise<import("../..").TenantUserEntity>;
14
+ reactivate(userId: string): Promise<import("../..").TenantUserEntity>;
15
+ remove(userId: string): Promise<import("../..").DeleteResult>;
16
+ private refuseSelf;
17
+ }
18
+ //# sourceMappingURL=tenant.member.controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant.member.controller.d.ts","sourceRoot":"","sources":["../../../src/auth/controllers/tenant.member.controller.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAE9E,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAGrE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAGhF,qBAGa,sBAAsB;IAE/B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,uBAAuB;IACxC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;gBAFjB,WAAW,EAAE,WAAW,EACxB,uBAAuB,EAAE,uBAAuB,EAChD,iBAAiB,EAAE,iBAAiB;IASjD,IAAI,CAAS,GAAG,EAAE,mBAAmB;IAgBrC,QAAQ,CACoB,MAAM,EAAE,MAAM,EACtC,GAAG,EAAE,cAAc;IAoBvB,UAAU,CAAiC,MAAM,EAAE,MAAM;IAoBzD,UAAU,CAAiC,MAAM,EAAE,MAAM;IAkBzD,MAAM,CAAiC,MAAM,EAAE,MAAM;IAa3D,OAAO,CAAC,UAAU;CAMnB"}
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.TenantMemberController = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const swagger_1 = require("@nestjs/swagger");
18
+ const list_filter_service_1 = require("../../common/services/list.filter.service");
19
+ const operation_exception_1 = require("../../global/exceptions/operation.exception");
20
+ const member_roles_dto_1 = require("../dtos/member.roles.dto");
21
+ const tenant_member_list_dto_1 = require("../dtos/tenant.member.list.dto");
22
+ const tenant_role_enum_1 = require("../enums/tenant.role.enum");
23
+ const tenant_member_list_processor_1 = require("../processors/tenant.member.list.processor");
24
+ const auth_service_1 = require("../services/auth.service");
25
+ const tenant_membership_service_1 = require("../services/tenant.membership.service");
26
+ let TenantMemberController = class TenantMemberController {
27
+ constructor(authService, tenantMembershipService, listFilterService) {
28
+ this.authService = authService;
29
+ this.tenantMembershipService = tenantMembershipService;
30
+ this.listFilterService = listFilterService;
31
+ }
32
+ async list(dto) {
33
+ const { user } = await this.authService.validateRole(tenant_role_enum_1.TenantRole.GLOBAL_ADMIN);
34
+ return new tenant_member_list_processor_1.TenantMemberListProcessor(this.listFilterService).process({
35
+ ...dto,
36
+ tenant_id: user.organization_id,
37
+ });
38
+ }
39
+ async setRoles(userId, dto) {
40
+ const { user } = await this.authService.validateRole(tenant_role_enum_1.TenantRole.GLOBAL_ADMIN);
41
+ return this.tenantMembershipService.setMemberRoles(userId, user.organization_id, dto.role_ids, user.id);
42
+ }
43
+ async deactivate(userId) {
44
+ const { user } = await this.authService.validateRole(tenant_role_enum_1.TenantRole.GLOBAL_ADMIN);
45
+ this.refuseSelf(userId, user.id);
46
+ return this.tenantMembershipService.setMemberActive(userId, user.organization_id, false, user.id);
47
+ }
48
+ async reactivate(userId) {
49
+ const { user } = await this.authService.validateRole(tenant_role_enum_1.TenantRole.GLOBAL_ADMIN);
50
+ return this.tenantMembershipService.setMemberActive(userId, user.organization_id, true, user.id);
51
+ }
52
+ async remove(userId) {
53
+ const { user } = await this.authService.validateRole(tenant_role_enum_1.TenantRole.GLOBAL_ADMIN);
54
+ this.refuseSelf(userId, user.id);
55
+ return this.tenantMembershipService.removeMember(userId, user.organization_id, user.id);
56
+ }
57
+ refuseSelf(userId, callerId) {
58
+ if (userId === callerId)
59
+ throw new operation_exception_1.OperationException('Act on your own membership by leaving the organization.');
60
+ }
61
+ };
62
+ exports.TenantMemberController = TenantMemberController;
63
+ __decorate([
64
+ (0, common_1.Post)('list'),
65
+ (0, swagger_1.ApiOperation)({
66
+ summary: "List the session organization's members.",
67
+ description: 'Each row carries the roles held in this organization. Requires the `global.admin` tenant role.',
68
+ }),
69
+ __param(0, (0, common_1.Body)()),
70
+ __metadata("design:type", Function),
71
+ __metadata("design:paramtypes", [tenant_member_list_dto_1.TenantMemberListDto]),
72
+ __metadata("design:returntype", Promise)
73
+ ], TenantMemberController.prototype, "list", null);
74
+ __decorate([
75
+ (0, common_1.Post)(':userId/roles'),
76
+ (0, swagger_1.ApiOperation)({
77
+ summary: "Replace a member's roles in the session organization.",
78
+ description: '`role_ids` is the complete set; omitted roles are revoked. Refused when it would leave the organization without a `global.admin`. Requires the `global.admin` tenant role.',
79
+ }),
80
+ __param(0, (0, common_1.Param)('userId', common_1.ParseUUIDPipe)),
81
+ __param(1, (0, common_1.Body)()),
82
+ __metadata("design:type", Function),
83
+ __metadata("design:paramtypes", [String, member_roles_dto_1.MemberRolesDto]),
84
+ __metadata("design:returntype", Promise)
85
+ ], TenantMemberController.prototype, "setRoles", null);
86
+ __decorate([
87
+ (0, common_1.Post)(':userId/deactivate'),
88
+ (0, common_1.HttpCode)(common_1.HttpStatus.OK),
89
+ (0, swagger_1.ApiOperation)({
90
+ summary: "Deactivate a member's membership of the session organization.",
91
+ description: 'The member keeps their roles but can no longer work in this organization, and their credentials bound to it are revoked. Their account and other memberships are untouched. Not for the caller, and refused for the last active `global.admin`. Requires the `global.admin` tenant role.',
92
+ }),
93
+ __param(0, (0, common_1.Param)('userId', common_1.ParseUUIDPipe)),
94
+ __metadata("design:type", Function),
95
+ __metadata("design:paramtypes", [String]),
96
+ __metadata("design:returntype", Promise)
97
+ ], TenantMemberController.prototype, "deactivate", null);
98
+ __decorate([
99
+ (0, common_1.Post)(':userId/reactivate'),
100
+ (0, common_1.HttpCode)(common_1.HttpStatus.OK),
101
+ (0, swagger_1.ApiOperation)({
102
+ summary: "Reactivate a member's membership of the session organization.",
103
+ description: 'Restores it with the roles it kept. Requires the `global.admin` tenant role.',
104
+ }),
105
+ __param(0, (0, common_1.Param)('userId', common_1.ParseUUIDPipe)),
106
+ __metadata("design:type", Function),
107
+ __metadata("design:paramtypes", [String]),
108
+ __metadata("design:returntype", Promise)
109
+ ], TenantMemberController.prototype, "reactivate", null);
110
+ __decorate([
111
+ (0, common_1.Delete)(':userId'),
112
+ (0, swagger_1.ApiOperation)({
113
+ summary: 'Remove a member from the session organization.',
114
+ description: 'Ends the membership and its roles and revokes their credentials bound to this organization; the account and its other memberships stay. Not for the caller — use `POST /auth/organizations/:id/leave`. Requires the `global.admin` tenant role.',
115
+ }),
116
+ __param(0, (0, common_1.Param)('userId', common_1.ParseUUIDPipe)),
117
+ __metadata("design:type", Function),
118
+ __metadata("design:paramtypes", [String]),
119
+ __metadata("design:returntype", Promise)
120
+ ], TenantMemberController.prototype, "remove", null);
121
+ exports.TenantMemberController = TenantMemberController = __decorate([
122
+ (0, swagger_1.ApiTags)('Organization Members'),
123
+ (0, swagger_1.ApiBearerAuth)(),
124
+ (0, common_1.Controller)('api/organization/members'),
125
+ __metadata("design:paramtypes", [auth_service_1.AuthService,
126
+ tenant_membership_service_1.TenantMembershipService,
127
+ list_filter_service_1.ListFilterService])
128
+ ], TenantMemberController);
129
+ //# sourceMappingURL=tenant.member.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant.member.controller.js","sourceRoot":"","sources":["../../../src/auth/controllers/tenant.member.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CASwB;AACxB,6CAAuE;AACvE,mFAA8E;AAC9E,qFAAiF;AACjF,+DAA0D;AAC1D,2EAAqE;AACrE,gEAAuD;AACvD,6FAAuF;AACvF,2DAAuD;AACvD,qFAAgF;AAMzE,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IACjC,YACmB,WAAwB,EACxB,uBAAgD,EAChD,iBAAoC;QAFpC,gBAAW,GAAX,WAAW,CAAa;QACxB,4BAAuB,GAAvB,uBAAuB,CAAyB;QAChD,sBAAiB,GAAjB,iBAAiB,CAAmB;IACpD,CAAC;IAQE,AAAN,KAAK,CAAC,IAAI,CAAS,GAAwB;QACzC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAClD,6BAAU,CAAC,YAAY,CACxB,CAAC;QACF,OAAO,IAAI,wDAAyB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC;YACnE,GAAG,GAAG;YACN,SAAS,EAAE,IAAI,CAAC,eAAe;SAChC,CAAC,CAAC;IACL,CAAC;IAQK,AAAN,KAAK,CAAC,QAAQ,CACoB,MAAc,EACtC,GAAmB;QAE3B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAClD,6BAAU,CAAC,YAAY,CACxB,CAAC;QACF,OAAO,IAAI,CAAC,uBAAuB,CAAC,cAAc,CAChD,MAAM,EACN,IAAI,CAAC,eAAe,EACpB,GAAG,CAAC,QAAQ,EACZ,IAAI,CAAC,EAAE,CACR,CAAC;IACJ,CAAC;IASK,AAAN,KAAK,CAAC,UAAU,CAAiC,MAAc;QAC7D,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAClD,6BAAU,CAAC,YAAY,CACxB,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC,uBAAuB,CAAC,eAAe,CACjD,MAAM,EACN,IAAI,CAAC,eAAe,EACpB,KAAK,EACL,IAAI,CAAC,EAAE,CACR,CAAC;IACJ,CAAC;IASK,AAAN,KAAK,CAAC,UAAU,CAAiC,MAAc;QAC7D,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAClD,6BAAU,CAAC,YAAY,CACxB,CAAC;QACF,OAAO,IAAI,CAAC,uBAAuB,CAAC,eAAe,CACjD,MAAM,EACN,IAAI,CAAC,eAAe,EACpB,IAAI,EACJ,IAAI,CAAC,EAAE,CACR,CAAC;IACJ,CAAC;IAQK,AAAN,KAAK,CAAC,MAAM,CAAiC,MAAc;QACzD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAClD,6BAAU,CAAC,YAAY,CACxB,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAC9C,MAAM,EACN,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,EAAE,CACR,CAAC;IACJ,CAAC;IAGO,UAAU,CAAC,MAAc,EAAE,QAAgB;QACjD,IAAI,MAAM,KAAK,QAAQ;YACrB,MAAM,IAAI,wCAAkB,CAC1B,yDAAyD,CAC1D,CAAC;IACN,CAAC;CACF,CAAA;AA5GY,wDAAsB;AAa3B;IANL,IAAA,aAAI,EAAC,MAAM,CAAC;IACZ,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,0CAA0C;QACnD,WAAW,EACT,gGAAgG;KACnG,CAAC;IACU,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAM,4CAAmB;;kDAQ1C;AAQK;IANL,IAAA,aAAI,EAAC,eAAe,CAAC;IACrB,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,uDAAuD;QAChE,WAAW,EACT,4KAA4K;KAC/K,CAAC;IAEC,WAAA,IAAA,cAAK,EAAC,QAAQ,EAAE,sBAAa,CAAC,CAAA;IAC9B,WAAA,IAAA,aAAI,GAAE,CAAA;;6CAAM,iCAAc;;sDAW5B;AASK;IAPL,IAAA,aAAI,EAAC,oBAAoB,CAAC;IAC1B,IAAA,iBAAQ,EAAC,mBAAU,CAAC,EAAE,CAAC;IACvB,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,+DAA+D;QACxE,WAAW,EACT,0RAA0R;KAC7R,CAAC;IACgB,WAAA,IAAA,cAAK,EAAC,QAAQ,EAAE,sBAAa,CAAC,CAAA;;;;wDAW/C;AASK;IAPL,IAAA,aAAI,EAAC,oBAAoB,CAAC;IAC1B,IAAA,iBAAQ,EAAC,mBAAU,CAAC,EAAE,CAAC;IACvB,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,+DAA+D;QACxE,WAAW,EACT,8EAA8E;KACjF,CAAC;IACgB,WAAA,IAAA,cAAK,EAAC,QAAQ,EAAE,sBAAa,CAAC,CAAA;;;;wDAU/C;AAQK;IANL,IAAA,eAAM,EAAC,SAAS,CAAC;IACjB,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,gDAAgD;QACzD,WAAW,EACT,iPAAiP;KACpP,CAAC;IACY,WAAA,IAAA,cAAK,EAAC,QAAQ,EAAE,sBAAa,CAAC,CAAA;;;;oDAU3C;iCAnGU,sBAAsB;IAHlC,IAAA,iBAAO,EAAC,sBAAsB,CAAC;IAC/B,IAAA,uBAAa,GAAE;IACf,IAAA,mBAAU,EAAC,0BAA0B,CAAC;qCAGL,0BAAW;QACC,mDAAuB;QAC7B,uCAAiB;GAJ5C,sBAAsB,CA4GlC"}
@@ -0,0 +1,12 @@
1
+ import { CommonParamsDto } from '../../common/dtos/common.params.dto';
2
+ import { AuthService } from '../services/auth.service';
3
+ import { TenantInvitationService } from '../services/tenant.invitation.service';
4
+ export declare class UserInvitationController {
5
+ private readonly authService;
6
+ private readonly tenantInvitationService;
7
+ constructor(authService: AuthService, tenantInvitationService: TenantInvitationService);
8
+ pending(): Promise<import("../..").PendingInvitation[]>;
9
+ accept({ id }: CommonParamsDto): Promise<import("../..").OrganizationSummary>;
10
+ decline({ id }: CommonParamsDto): Promise<import("../..").TenantInvitationEntity>;
11
+ }
12
+ //# sourceMappingURL=user.invitation.controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.invitation.controller.d.ts","sourceRoot":"","sources":["../../../src/auth/controllers/user.invitation.controller.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAGhF,qBAGa,wBAAwB;IAEjC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,uBAAuB;gBADvB,WAAW,EAAE,WAAW,EACxB,uBAAuB,EAAE,uBAAuB;IAS7D,OAAO;IAYP,MAAM,CAAU,EAAE,EAAE,EAAE,EAAE,eAAe;IAOvC,OAAO,CAAU,EAAE,EAAE,EAAE,EAAE,eAAe;CAG/C"}
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.UserInvitationController = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const swagger_1 = require("@nestjs/swagger");
18
+ const common_params_dto_1 = require("../../common/dtos/common.params.dto");
19
+ const auth_service_1 = require("../services/auth.service");
20
+ const tenant_invitation_service_1 = require("../services/tenant.invitation.service");
21
+ let UserInvitationController = class UserInvitationController {
22
+ constructor(authService, tenantInvitationService) {
23
+ this.authService = authService;
24
+ this.tenantInvitationService = tenantInvitationService;
25
+ }
26
+ async pending() {
27
+ const { user } = await this.authService.validateRole();
28
+ return this.tenantInvitationService.pendingFor(user);
29
+ }
30
+ async accept({ id }) {
31
+ return this.tenantInvitationService.accept(id);
32
+ }
33
+ async decline({ id }) {
34
+ return this.tenantInvitationService.decline(id);
35
+ }
36
+ };
37
+ exports.UserInvitationController = UserInvitationController;
38
+ __decorate([
39
+ (0, common_1.Get)(),
40
+ (0, swagger_1.ApiOperation)({
41
+ summary: 'Pending invitations addressed to the caller.',
42
+ description: 'Also returned by `GET /auth/me`. Works on a tenantless session, so a user with no organization yet can see and accept one.',
43
+ }),
44
+ __metadata("design:type", Function),
45
+ __metadata("design:paramtypes", []),
46
+ __metadata("design:returntype", Promise)
47
+ ], UserInvitationController.prototype, "pending", null);
48
+ __decorate([
49
+ (0, common_1.Post)(':id/accept'),
50
+ (0, common_1.HttpCode)(common_1.HttpStatus.OK),
51
+ (0, swagger_1.ApiOperation)({
52
+ summary: 'Accept an invitation and join its organization.',
53
+ description: 'Adds the membership and the invited roles, and returns the organization. The session stays where it is — call `POST /auth/organizations/switch` to work in the new one.',
54
+ }),
55
+ __param(0, (0, common_1.Param)()),
56
+ __metadata("design:type", Function),
57
+ __metadata("design:paramtypes", [common_params_dto_1.CommonParamsDto]),
58
+ __metadata("design:returntype", Promise)
59
+ ], UserInvitationController.prototype, "accept", null);
60
+ __decorate([
61
+ (0, common_1.Post)(':id/decline'),
62
+ (0, common_1.HttpCode)(common_1.HttpStatus.OK),
63
+ (0, swagger_1.ApiOperation)({ summary: 'Decline an invitation.' }),
64
+ __param(0, (0, common_1.Param)()),
65
+ __metadata("design:type", Function),
66
+ __metadata("design:paramtypes", [common_params_dto_1.CommonParamsDto]),
67
+ __metadata("design:returntype", Promise)
68
+ ], UserInvitationController.prototype, "decline", null);
69
+ exports.UserInvitationController = UserInvitationController = __decorate([
70
+ (0, swagger_1.ApiTags)('Auth'),
71
+ (0, swagger_1.ApiBearerAuth)(),
72
+ (0, common_1.Controller)('api/auth/invitations'),
73
+ __metadata("design:paramtypes", [auth_service_1.AuthService,
74
+ tenant_invitation_service_1.TenantInvitationService])
75
+ ], UserInvitationController);
76
+ //# sourceMappingURL=user.invitation.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.invitation.controller.js","sourceRoot":"","sources":["../../../src/auth/controllers/user.invitation.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAOwB;AACxB,6CAAuE;AACvE,2EAAsE;AACtE,2DAAuD;AACvD,qFAAgF;AAMzE,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;IACnC,YACmB,WAAwB,EACxB,uBAAgD;QADhD,gBAAW,GAAX,WAAW,CAAa;QACxB,4BAAuB,GAAvB,uBAAuB,CAAyB;IAChE,CAAC;IAQE,AAAN,KAAK,CAAC,OAAO;QACX,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;QACvD,OAAO,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC;IASK,AAAN,KAAK,CAAC,MAAM,CAAU,EAAE,EAAE,EAAmB;QAC3C,OAAO,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACjD,CAAC;IAKK,AAAN,KAAK,CAAC,OAAO,CAAU,EAAE,EAAE,EAAmB;QAC5C,OAAO,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAClD,CAAC;CACF,CAAA;AAlCY,4DAAwB;AAY7B;IANL,IAAA,YAAG,GAAE;IACL,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,8CAA8C;QACvD,WAAW,EACT,4HAA4H;KAC/H,CAAC;;;;uDAID;AASK;IAPL,IAAA,aAAI,EAAC,YAAY,CAAC;IAClB,IAAA,iBAAQ,EAAC,mBAAU,CAAC,EAAE,CAAC;IACvB,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,iDAAiD;QAC1D,WAAW,EACT,yKAAyK;KAC5K,CAAC;IACY,WAAA,IAAA,cAAK,GAAE,CAAA;;qCAAS,mCAAe;;sDAE5C;AAKK;IAHL,IAAA,aAAI,EAAC,aAAa,CAAC;IACnB,IAAA,iBAAQ,EAAC,mBAAU,CAAC,EAAE,CAAC;IACvB,IAAA,sBAAY,EAAC,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC;IACrC,WAAA,IAAA,cAAK,GAAE,CAAA;;qCAAS,mCAAe;;uDAE7C;mCAjCU,wBAAwB;IAHpC,IAAA,iBAAO,EAAC,MAAM,CAAC;IACf,IAAA,uBAAa,GAAE;IACf,IAAA,mBAAU,EAAC,sBAAsB,CAAC;qCAGD,0BAAW;QACC,mDAAuB;GAHxD,wBAAwB,CAkCpC"}
@@ -0,0 +1,17 @@
1
+ import type { Request } from 'express';
2
+ import { CommonParamsDto } from '../../common/dtos/common.params.dto';
3
+ import { RefreshTokenDto } from '../dtos/refresh.token.dto';
4
+ import { SwitchOrganizationDto } from '../dtos/switch.organization.dto';
5
+ import { AuthService } from '../services/auth.service';
6
+ import { TenantMembershipService } from '../services/tenant.membership.service';
7
+ import { AuthTokenPair, OrganizationSession, OrganizationSummary } from '../types/auth.types';
8
+ export declare class UserOrganizationController {
9
+ private readonly authService;
10
+ private readonly tenantMembershipService;
11
+ constructor(authService: AuthService, tenantMembershipService: TenantMembershipService);
12
+ organizations(): Promise<OrganizationSummary[]>;
13
+ switch(dto: SwitchOrganizationDto, request: Request): Promise<OrganizationSession>;
14
+ leave({ id }: CommonParamsDto, dto: RefreshTokenDto, request: Request): Promise<AuthTokenPair>;
15
+ private contextOf;
16
+ }
17
+ //# sourceMappingURL=user.organization.controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.organization.controller.d.ts","sourceRoot":"","sources":["../../../src/auth/controllers/user.organization.controller.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EAEpB,MAAM,qBAAqB,CAAC;AAG7B,qBAGa,0BAA0B;IAEnC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,uBAAuB;gBADvB,WAAW,EAAE,WAAW,EACxB,uBAAuB,EAAE,uBAAuB;IAK7D,aAAa,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAY/C,MAAM,CACF,GAAG,EAAE,qBAAqB,EAC3B,OAAO,EAAE,OAAO,GACtB,OAAO,CAAC,mBAAmB,CAAC;IAczB,KAAK,CACA,EAAE,EAAE,EAAE,EAAE,eAAe,EACxB,GAAG,EAAE,eAAe,EACrB,OAAO,EAAE,OAAO,GACtB,OAAO,CAAC,aAAa,CAAC;IAIzB,OAAO,CAAC,SAAS;CAMlB"}
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.UserOrganizationController = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const swagger_1 = require("@nestjs/swagger");
18
+ const common_params_dto_1 = require("../../common/dtos/common.params.dto");
19
+ const refresh_token_dto_1 = require("../dtos/refresh.token.dto");
20
+ const switch_organization_dto_1 = require("../dtos/switch.organization.dto");
21
+ const auth_service_1 = require("../services/auth.service");
22
+ const tenant_membership_service_1 = require("../services/tenant.membership.service");
23
+ let UserOrganizationController = class UserOrganizationController {
24
+ constructor(authService, tenantMembershipService) {
25
+ this.authService = authService;
26
+ this.tenantMembershipService = tenantMembershipService;
27
+ }
28
+ async organizations() {
29
+ const { user } = await this.authService.validateRole();
30
+ return this.tenantMembershipService.organizationsOf(user.id);
31
+ }
32
+ async switch(dto, request) {
33
+ return this.tenantMembershipService.switchOrganization(dto, this.contextOf(request));
34
+ }
35
+ async leave({ id }, dto, request) {
36
+ return this.tenantMembershipService.leave(id, dto, this.contextOf(request));
37
+ }
38
+ contextOf(request) {
39
+ return {
40
+ ip_address: request.ip,
41
+ user_agent: request.headers['user-agent'],
42
+ };
43
+ }
44
+ };
45
+ exports.UserOrganizationController = UserOrganizationController;
46
+ __decorate([
47
+ (0, common_1.Get)(),
48
+ (0, swagger_1.ApiOperation)({ summary: 'Active organizations the caller is a member of.' }),
49
+ __metadata("design:type", Function),
50
+ __metadata("design:paramtypes", []),
51
+ __metadata("design:returntype", Promise)
52
+ ], UserOrganizationController.prototype, "organizations", null);
53
+ __decorate([
54
+ (0, common_1.Post)('switch'),
55
+ (0, common_1.HttpCode)(common_1.HttpStatus.OK),
56
+ (0, swagger_1.ApiOperation)({
57
+ summary: 'Move the session into another of the caller’s organizations.',
58
+ description: 'Retires the current session and the supplied refresh token, and returns a pair bound to `tenant_id`. The choice is remembered: the next login lands there. Global-access accounts use the impersonation login instead.',
59
+ }),
60
+ __param(0, (0, common_1.Body)()),
61
+ __param(1, (0, common_1.Req)()),
62
+ __metadata("design:type", Function),
63
+ __metadata("design:paramtypes", [switch_organization_dto_1.SwitchOrganizationDto, Object]),
64
+ __metadata("design:returntype", Promise)
65
+ ], UserOrganizationController.prototype, "switch", null);
66
+ __decorate([
67
+ (0, common_1.Post)(':id/leave'),
68
+ (0, common_1.HttpCode)(common_1.HttpStatus.OK),
69
+ (0, swagger_1.ApiOperation)({
70
+ summary: 'Leave an organization.',
71
+ description: 'Ends the membership and its roles, and revokes the caller’s credentials bound to that organization. Retires the supplied refresh token and returns a new pair in whichever organization a login would now land in (tenantless when none). Refused for the organization’s last `global.admin`.',
72
+ }),
73
+ __param(0, (0, common_1.Param)()),
74
+ __param(1, (0, common_1.Body)()),
75
+ __param(2, (0, common_1.Req)()),
76
+ __metadata("design:type", Function),
77
+ __metadata("design:paramtypes", [common_params_dto_1.CommonParamsDto,
78
+ refresh_token_dto_1.RefreshTokenDto, Object]),
79
+ __metadata("design:returntype", Promise)
80
+ ], UserOrganizationController.prototype, "leave", null);
81
+ exports.UserOrganizationController = UserOrganizationController = __decorate([
82
+ (0, swagger_1.ApiTags)('Auth'),
83
+ (0, swagger_1.ApiBearerAuth)(),
84
+ (0, common_1.Controller)('api/auth/organizations'),
85
+ __metadata("design:paramtypes", [auth_service_1.AuthService,
86
+ tenant_membership_service_1.TenantMembershipService])
87
+ ], UserOrganizationController);
88
+ //# sourceMappingURL=user.organization.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.organization.controller.js","sourceRoot":"","sources":["../../../src/auth/controllers/user.organization.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CASwB;AACxB,6CAAuE;AAEvE,2EAAsE;AACtE,iEAA4D;AAC5D,6EAAwE;AACxE,2DAAuD;AACvD,qFAAgF;AAYzE,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;IACrC,YACmB,WAAwB,EACxB,uBAAgD;QADhD,gBAAW,GAAX,WAAW,CAAa;QACxB,4BAAuB,GAAvB,uBAAuB,CAAyB;IAChE,CAAC;IAIE,AAAN,KAAK,CAAC,aAAa;QACjB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;QACvD,OAAO,IAAI,CAAC,uBAAuB,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/D,CAAC;IASK,AAAN,KAAK,CAAC,MAAM,CACF,GAA0B,EAC3B,OAAgB;QAEvB,OAAO,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CACpD,GAAG,EACH,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CACxB,CAAC;IACJ,CAAC;IASK,AAAN,KAAK,CAAC,KAAK,CACA,EAAE,EAAE,EAAmB,EACxB,GAAoB,EACrB,OAAgB;QAEvB,OAAO,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9E,CAAC;IAEO,SAAS,CAAC,OAAgB;QAChC,OAAO;YACL,UAAU,EAAE,OAAO,CAAC,EAAE;YACtB,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC;SAC1C,CAAC;IACJ,CAAC;CACF,CAAA;AAnDY,gEAA0B;AAQ/B;IAFL,IAAA,YAAG,GAAE;IACL,IAAA,sBAAY,EAAC,EAAE,OAAO,EAAE,iDAAiD,EAAE,CAAC;;;;+DAI5E;AASK;IAPL,IAAA,aAAI,EAAC,QAAQ,CAAC;IACd,IAAA,iBAAQ,EAAC,mBAAU,CAAC,EAAE,CAAC;IACvB,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,8DAA8D;QACvE,WAAW,EACT,wNAAwN;KAC3N,CAAC;IAEC,WAAA,IAAA,aAAI,GAAE,CAAA;IACN,WAAA,IAAA,YAAG,GAAE,CAAA;;qCADO,+CAAqB;;wDAOnC;AASK;IAPL,IAAA,aAAI,EAAC,WAAW,CAAC;IACjB,IAAA,iBAAQ,EAAC,mBAAU,CAAC,EAAE,CAAC;IACvB,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,wBAAwB;QACjC,WAAW,EACT,+RAA+R;KAClS,CAAC;IAEC,WAAA,IAAA,cAAK,GAAE,CAAA;IACP,WAAA,IAAA,aAAI,GAAE,CAAA;IACN,WAAA,IAAA,YAAG,GAAE,CAAA;;qCAFW,mCAAe;QACnB,mCAAe;;uDAI7B;qCA3CU,0BAA0B;IAHtC,IAAA,iBAAO,EAAC,MAAM,CAAC;IACf,IAAA,uBAAa,GAAE;IACf,IAAA,mBAAU,EAAC,wBAAwB,CAAC;qCAGH,0BAAW;QACC,mDAAuB;GAHxD,0BAA0B,CAmDtC"}
@@ -0,0 +1,6 @@
1
+ export declare class InviteTenantUserDto {
2
+ email: string;
3
+ full_name?: string;
4
+ role_ids: string[];
5
+ }
6
+ //# sourceMappingURL=invite.tenant.user.dto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invite.tenant.user.dto.d.ts","sourceRoot":"","sources":["../../../src/auth/dtos/invite.tenant.user.dto.ts"],"names":[],"mappings":"AAYA,qBAAa,mBAAmB;IAI9B,KAAK,EAAE,MAAM,CAAC;IAUd,SAAS,CAAC,EAAE,MAAM,CAAC;IAUnB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.InviteTenantUserDto = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ const swagger_1 = require("@nestjs/swagger");
15
+ class InviteTenantUserDto {
16
+ }
17
+ exports.InviteTenantUserDto = InviteTenantUserDto;
18
+ __decorate([
19
+ (0, swagger_1.ApiProperty)({ example: 'jane@acme.com' }),
20
+ (0, class_validator_1.IsEmail)(),
21
+ (0, class_validator_1.MaxLength)(255),
22
+ __metadata("design:type", String)
23
+ ], InviteTenantUserDto.prototype, "email", void 0);
24
+ __decorate([
25
+ (0, swagger_1.ApiPropertyOptional)({
26
+ example: 'Jane Doe',
27
+ description: 'Name for the account created when the email has none; defaults to the part before the @.',
28
+ }),
29
+ (0, class_validator_1.IsOptional)(),
30
+ (0, class_validator_1.IsString)(),
31
+ (0, class_validator_1.MaxLength)(255),
32
+ __metadata("design:type", String)
33
+ ], InviteTenantUserDto.prototype, "full_name", void 0);
34
+ __decorate([
35
+ (0, swagger_1.ApiProperty)({
36
+ type: [String],
37
+ format: 'uuid',
38
+ description: 'sys_roles uuids granted in the organization on acceptance.',
39
+ }),
40
+ (0, class_validator_1.IsArray)(),
41
+ (0, class_validator_1.ArrayMinSize)(1),
42
+ (0, class_validator_1.IsUUID)('all', { each: true }),
43
+ __metadata("design:type", Array)
44
+ ], InviteTenantUserDto.prototype, "role_ids", void 0);
45
+ //# sourceMappingURL=invite.tenant.user.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invite.tenant.user.dto.js","sourceRoot":"","sources":["../../../src/auth/dtos/invite.tenant.user.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAQyB;AACzB,6CAAmE;AAGnE,MAAa,mBAAmB;CAyB/B;AAzBD,kDAyBC;AArBC;IAHC,IAAA,qBAAW,EAAC,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;IACzC,IAAA,yBAAO,GAAE;IACT,IAAA,2BAAS,EAAC,GAAG,CAAC;;kDACD;AAUd;IARC,IAAA,6BAAmB,EAAC;QACnB,OAAO,EAAE,UAAU;QACnB,WAAW,EACT,0FAA0F;KAC7F,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,2BAAS,EAAC,GAAG,CAAC;;sDACI;AAUnB;IARC,IAAA,qBAAW,EAAC;QACX,IAAI,EAAE,CAAC,MAAM,CAAC;QACd,MAAM,EAAE,MAAM;QACd,WAAW,EAAE,4DAA4D;KAC1E,CAAC;IACD,IAAA,yBAAO,GAAE;IACT,IAAA,8BAAY,EAAC,CAAC,CAAC;IACf,IAAA,wBAAM,EAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;;qDACX"}
@@ -0,0 +1,4 @@
1
+ export declare class MemberRolesDto {
2
+ role_ids: string[];
3
+ }
4
+ //# sourceMappingURL=member.roles.dto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"member.roles.dto.d.ts","sourceRoot":"","sources":["../../../src/auth/dtos/member.roles.dto.ts"],"names":[],"mappings":"AAIA,qBAAa,cAAc;IASzB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB"}