@ackplus/nest-auth 2.0.0-beta.8 → 2.0.1

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 (276) hide show
  1. package/README.md +83 -130
  2. package/dist/index.d.ts +1 -1
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +1 -1
  5. package/dist/index.js.map +1 -1
  6. package/dist/lib/admin-console/admin-console.module.js +1 -1
  7. package/dist/lib/admin-console/admin-console.module.js.map +1 -1
  8. package/dist/lib/admin-console/controllers/admin-auth.controller.d.ts +3 -3
  9. package/dist/lib/admin-console/controllers/admin-auth.controller.d.ts.map +1 -1
  10. package/dist/lib/admin-console/controllers/admin-auth.controller.js +30 -12
  11. package/dist/lib/admin-console/controllers/admin-auth.controller.js.map +1 -1
  12. package/dist/lib/admin-console/controllers/admin-console.controller.d.ts +1 -1
  13. package/dist/lib/admin-console/controllers/admin-console.controller.d.ts.map +1 -1
  14. package/dist/lib/admin-console/controllers/admin-console.controller.js +19 -9
  15. package/dist/lib/admin-console/controllers/admin-console.controller.js.map +1 -1
  16. package/dist/lib/admin-console/controllers/admin-permissions.controller.d.ts.map +1 -1
  17. package/dist/lib/admin-console/controllers/admin-permissions.controller.js +19 -1
  18. package/dist/lib/admin-console/controllers/admin-permissions.controller.js.map +1 -1
  19. package/dist/lib/admin-console/controllers/admin-roles.controller.d.ts.map +1 -1
  20. package/dist/lib/admin-console/controllers/admin-roles.controller.js +15 -1
  21. package/dist/lib/admin-console/controllers/admin-roles.controller.js.map +1 -1
  22. package/dist/lib/admin-console/controllers/admin-tenants.controller.d.ts.map +1 -1
  23. package/dist/lib/admin-console/controllers/admin-tenants.controller.js +15 -1
  24. package/dist/lib/admin-console/controllers/admin-tenants.controller.js.map +1 -1
  25. package/dist/lib/admin-console/controllers/admin-users.controller.d.ts +13 -17
  26. package/dist/lib/admin-console/controllers/admin-users.controller.d.ts.map +1 -1
  27. package/dist/lib/admin-console/controllers/admin-users.controller.js +35 -13
  28. package/dist/lib/admin-console/controllers/admin-users.controller.js.map +1 -1
  29. package/dist/lib/admin-console/dto/admin-user.dto.d.ts +4 -2
  30. package/dist/lib/admin-console/dto/admin-user.dto.d.ts.map +1 -1
  31. package/dist/lib/admin-console/dto/admin-user.dto.js +16 -8
  32. package/dist/lib/admin-console/dto/admin-user.dto.js.map +1 -1
  33. package/dist/lib/admin-console/services/admin-console-config.service.d.ts.map +1 -1
  34. package/dist/lib/admin-console/services/admin-console-config.service.js +10 -4
  35. package/dist/lib/admin-console/services/admin-console-config.service.js.map +1 -1
  36. package/dist/lib/admin-console/services/admin-user-management.service.d.ts +1 -1
  37. package/dist/lib/admin-console/services/admin-user-management.service.d.ts.map +1 -1
  38. package/dist/lib/admin-console/services/admin-user-management.service.js +1 -1
  39. package/dist/lib/admin-console/services/admin-user-management.service.js.map +1 -1
  40. package/dist/lib/admin-console/static/index.html +632 -567
  41. package/dist/lib/admin-console/static/nest-auth.json +3502 -157
  42. package/dist/lib/audit/services/audit.service.d.ts +2 -0
  43. package/dist/lib/audit/services/audit.service.d.ts.map +1 -1
  44. package/dist/lib/audit/services/audit.service.js +23 -0
  45. package/dist/lib/audit/services/audit.service.js.map +1 -1
  46. package/dist/lib/auth/auth.module.d.ts.map +1 -1
  47. package/dist/lib/auth/auth.module.js +6 -0
  48. package/dist/lib/auth/auth.module.js.map +1 -1
  49. package/dist/lib/auth/controllers/auth.controller.d.ts +3 -2
  50. package/dist/lib/auth/controllers/auth.controller.d.ts.map +1 -1
  51. package/dist/lib/auth/controllers/auth.controller.js +48 -24
  52. package/dist/lib/auth/controllers/auth.controller.js.map +1 -1
  53. package/dist/lib/auth/controllers/mfa.controller.d.ts.map +1 -1
  54. package/dist/lib/auth/controllers/mfa.controller.js +6 -1
  55. package/dist/lib/auth/controllers/mfa.controller.js.map +1 -1
  56. package/dist/lib/auth/dto/credentials/social-credentials.dto.d.ts +2 -0
  57. package/dist/lib/auth/dto/credentials/social-credentials.dto.d.ts.map +1 -1
  58. package/dist/lib/auth/dto/credentials/social-credentials.dto.js +28 -0
  59. package/dist/lib/auth/dto/credentials/social-credentials.dto.js.map +1 -1
  60. package/dist/lib/auth/dto/requests/verify-2fa.request.dto.d.ts.map +1 -1
  61. package/dist/lib/auth/dto/requests/verify-2fa.request.dto.js +2 -0
  62. package/dist/lib/auth/dto/requests/verify-2fa.request.dto.js.map +1 -1
  63. package/dist/lib/auth/dto/responses/auth.response.dto.d.ts +3 -5
  64. package/dist/lib/auth/dto/responses/auth.response.dto.d.ts.map +1 -1
  65. package/dist/lib/auth/dto/responses/auth.response.dto.js +11 -27
  66. package/dist/lib/auth/dto/responses/auth.response.dto.js.map +1 -1
  67. package/dist/lib/auth/entities/otp.entity.d.ts +1 -1
  68. package/dist/lib/auth/entities/otp.entity.d.ts.map +1 -1
  69. package/dist/lib/auth/entities/otp.entity.js.map +1 -1
  70. package/dist/lib/auth/entities/trusted-device.entity.d.ts.map +1 -1
  71. package/dist/lib/auth/entities/trusted-device.entity.js +1 -1
  72. package/dist/lib/auth/entities/trusted-device.entity.js.map +1 -1
  73. package/dist/lib/auth/events/login-failed.event.d.ts +15 -0
  74. package/dist/lib/auth/events/login-failed.event.d.ts.map +1 -0
  75. package/dist/lib/auth/events/login-failed.event.js +11 -0
  76. package/dist/lib/auth/events/login-failed.event.js.map +1 -0
  77. package/dist/lib/auth/events/user-logged-in.event.d.ts +3 -1
  78. package/dist/lib/auth/events/user-logged-in.event.d.ts.map +1 -1
  79. package/dist/lib/auth/events/user-logged-in.event.js.map +1 -1
  80. package/dist/lib/auth/events/user-registered.event.d.ts +2 -1
  81. package/dist/lib/auth/events/user-registered.event.d.ts.map +1 -1
  82. package/dist/lib/auth/events/user-registered.event.js.map +1 -1
  83. package/dist/lib/auth/guards/auth.guard.d.ts.map +1 -1
  84. package/dist/lib/auth/guards/auth.guard.js +1 -1
  85. package/dist/lib/auth/guards/auth.guard.js.map +1 -1
  86. package/dist/lib/auth/interceptors/token-response.interceptor.d.ts.map +1 -1
  87. package/dist/lib/auth/interceptors/token-response.interceptor.js +4 -3
  88. package/dist/lib/auth/interceptors/token-response.interceptor.js.map +1 -1
  89. package/dist/lib/auth/services/auth.service.d.ts +17 -6
  90. package/dist/lib/auth/services/auth.service.d.ts.map +1 -1
  91. package/dist/lib/auth/services/auth.service.js +271 -281
  92. package/dist/lib/auth/services/auth.service.js.map +1 -1
  93. package/dist/lib/auth/services/logout.service.d.ts +14 -0
  94. package/dist/lib/auth/services/logout.service.d.ts.map +1 -0
  95. package/dist/lib/auth/services/logout.service.js +74 -0
  96. package/dist/lib/auth/services/logout.service.js.map +1 -0
  97. package/dist/lib/auth/services/mfa.service.d.ts +2 -0
  98. package/dist/lib/auth/services/mfa.service.d.ts.map +1 -1
  99. package/dist/lib/auth/services/mfa.service.js +29 -6
  100. package/dist/lib/auth/services/mfa.service.js.map +1 -1
  101. package/dist/lib/auth/services/otp-flow.service.d.ts.map +1 -1
  102. package/dist/lib/auth/services/otp-flow.service.js +1 -2
  103. package/dist/lib/auth/services/otp-flow.service.js.map +1 -1
  104. package/dist/lib/auth/services/password.service.d.ts +2 -1
  105. package/dist/lib/auth/services/password.service.d.ts.map +1 -1
  106. package/dist/lib/auth/services/password.service.js +19 -6
  107. package/dist/lib/auth/services/password.service.js.map +1 -1
  108. package/dist/lib/auth/services/session-token.service.d.ts +37 -0
  109. package/dist/lib/auth/services/session-token.service.d.ts.map +1 -0
  110. package/dist/lib/auth/services/session-token.service.js +151 -0
  111. package/dist/lib/auth/services/session-token.service.js.map +1 -0
  112. package/dist/lib/auth/services/verification.service.d.ts.map +1 -1
  113. package/dist/lib/auth/services/verification.service.js +0 -5
  114. package/dist/lib/auth/services/verification.service.js.map +1 -1
  115. package/dist/lib/auth.constants.d.ts +15 -0
  116. package/dist/lib/auth.constants.d.ts.map +1 -1
  117. package/dist/lib/auth.constants.js +11 -0
  118. package/dist/lib/auth.constants.js.map +1 -1
  119. package/dist/lib/core/entities.d.ts +5 -3
  120. package/dist/lib/core/entities.d.ts.map +1 -1
  121. package/dist/lib/core/entities.js +5 -2
  122. package/dist/lib/core/entities.js.map +1 -1
  123. package/dist/lib/core/index.d.ts +1 -0
  124. package/dist/lib/core/index.d.ts.map +1 -1
  125. package/dist/lib/core/index.js +1 -0
  126. package/dist/lib/core/index.js.map +1 -1
  127. package/dist/lib/core/interfaces/auth-module-options.interface.d.ts +28 -5
  128. package/dist/lib/core/interfaces/auth-module-options.interface.d.ts.map +1 -1
  129. package/dist/lib/core/interfaces/session-options.interface.d.ts +5 -1
  130. package/dist/lib/core/interfaces/session-options.interface.d.ts.map +1 -1
  131. package/dist/lib/core/interfaces/session-options.interface.js +1 -0
  132. package/dist/lib/core/interfaces/session-options.interface.js.map +1 -1
  133. package/dist/lib/core/interfaces/token-payload.interface.d.ts +3 -1
  134. package/dist/lib/core/interfaces/token-payload.interface.d.ts.map +1 -1
  135. package/dist/lib/core/providers/apple-auth.provider.d.ts +13 -7
  136. package/dist/lib/core/providers/apple-auth.provider.d.ts.map +1 -1
  137. package/dist/lib/core/providers/apple-auth.provider.js +166 -7
  138. package/dist/lib/core/providers/apple-auth.provider.js.map +1 -1
  139. package/dist/lib/core/providers/base-auth.provider.d.ts +2 -0
  140. package/dist/lib/core/providers/base-auth.provider.d.ts.map +1 -1
  141. package/dist/lib/core/providers/base-auth.provider.js.map +1 -1
  142. package/dist/lib/core/providers/email-auth.provider.d.ts.map +1 -1
  143. package/dist/lib/core/providers/email-auth.provider.js +13 -2
  144. package/dist/lib/core/providers/email-auth.provider.js.map +1 -1
  145. package/dist/lib/core/providers/github-auth.provider.d.ts +3 -0
  146. package/dist/lib/core/providers/github-auth.provider.d.ts.map +1 -1
  147. package/dist/lib/core/providers/github-auth.provider.js +73 -24
  148. package/dist/lib/core/providers/github-auth.provider.js.map +1 -1
  149. package/dist/lib/core/providers/google-auth.provider.d.ts +1 -0
  150. package/dist/lib/core/providers/google-auth.provider.d.ts.map +1 -1
  151. package/dist/lib/core/providers/google-auth.provider.js +7 -1
  152. package/dist/lib/core/providers/google-auth.provider.js.map +1 -1
  153. package/dist/lib/core/providers/jwt-auth.provider.d.ts +2 -1
  154. package/dist/lib/core/providers/jwt-auth.provider.d.ts.map +1 -1
  155. package/dist/lib/core/providers/passwordless-auth.provider.d.ts +3 -1
  156. package/dist/lib/core/providers/passwordless-auth.provider.d.ts.map +1 -1
  157. package/dist/lib/core/providers/passwordless-auth.provider.js +11 -1
  158. package/dist/lib/core/providers/passwordless-auth.provider.js.map +1 -1
  159. package/dist/lib/core/providers/phone-auth.provider.d.ts.map +1 -1
  160. package/dist/lib/core/providers/phone-auth.provider.js +13 -2
  161. package/dist/lib/core/providers/phone-auth.provider.js.map +1 -1
  162. package/dist/lib/core/services/auth-config.service.d.ts.map +1 -1
  163. package/dist/lib/core/services/auth-config.service.js +6 -0
  164. package/dist/lib/core/services/auth-config.service.js.map +1 -1
  165. package/dist/lib/core/services/jwt.service.d.ts.map +1 -1
  166. package/dist/lib/core/services/jwt.service.js +10 -5
  167. package/dist/lib/core/services/jwt.service.js.map +1 -1
  168. package/dist/lib/core/swagger/api-responses.decorator.d.ts +15 -0
  169. package/dist/lib/core/swagger/api-responses.decorator.d.ts.map +1 -0
  170. package/dist/lib/core/swagger/api-responses.decorator.js +57 -0
  171. package/dist/lib/core/swagger/api-responses.decorator.js.map +1 -0
  172. package/dist/lib/nest-auth.module.d.ts.map +1 -1
  173. package/dist/lib/nest-auth.module.js +18 -2
  174. package/dist/lib/nest-auth.module.js.map +1 -1
  175. package/dist/lib/permission/events/permission-created.event.d.ts +9 -0
  176. package/dist/lib/permission/events/permission-created.event.d.ts.map +1 -0
  177. package/dist/lib/permission/events/permission-created.event.js +11 -0
  178. package/dist/lib/permission/events/permission-created.event.js.map +1 -0
  179. package/dist/lib/permission/events/permission-deleted.event.d.ts +9 -0
  180. package/dist/lib/permission/events/permission-deleted.event.d.ts.map +1 -0
  181. package/dist/lib/permission/events/permission-deleted.event.js +11 -0
  182. package/dist/lib/permission/events/permission-deleted.event.js.map +1 -0
  183. package/dist/lib/permission/events/permission-updated.event.d.ts +10 -0
  184. package/dist/lib/permission/events/permission-updated.event.d.ts.map +1 -0
  185. package/dist/lib/permission/events/permission-updated.event.js +11 -0
  186. package/dist/lib/permission/events/permission-updated.event.js.map +1 -0
  187. package/dist/lib/permission/index.d.ts +3 -0
  188. package/dist/lib/permission/index.d.ts.map +1 -1
  189. package/dist/lib/permission/index.js +3 -0
  190. package/dist/lib/permission/index.js.map +1 -1
  191. package/dist/lib/permission/services/permission.service.d.ts +3 -1
  192. package/dist/lib/permission/services/permission.service.d.ts.map +1 -1
  193. package/dist/lib/permission/services/permission.service.js +16 -4
  194. package/dist/lib/permission/services/permission.service.js.map +1 -1
  195. package/dist/lib/request-context/request-context.d.ts +1 -1
  196. package/dist/lib/request-context/request-context.d.ts.map +1 -1
  197. package/dist/lib/request-context/request-context.js +3 -3
  198. package/dist/lib/request-context/request-context.js.map +1 -1
  199. package/dist/lib/role/entities/role.entity.d.ts +3 -1
  200. package/dist/lib/role/entities/role.entity.d.ts.map +1 -1
  201. package/dist/lib/role/entities/role.entity.js +7 -1
  202. package/dist/lib/role/entities/role.entity.js.map +1 -1
  203. package/dist/lib/role/events/role-created.event.d.ts +9 -0
  204. package/dist/lib/role/events/role-created.event.d.ts.map +1 -0
  205. package/dist/lib/role/events/role-created.event.js +11 -0
  206. package/dist/lib/role/events/role-created.event.js.map +1 -0
  207. package/dist/lib/role/events/role-deleted.event.d.ts +9 -0
  208. package/dist/lib/role/events/role-deleted.event.d.ts.map +1 -0
  209. package/dist/lib/role/events/role-deleted.event.js +11 -0
  210. package/dist/lib/role/events/role-deleted.event.js.map +1 -0
  211. package/dist/lib/role/events/role-updated.event.d.ts +10 -0
  212. package/dist/lib/role/events/role-updated.event.d.ts.map +1 -0
  213. package/dist/lib/role/events/role-updated.event.js +11 -0
  214. package/dist/lib/role/events/role-updated.event.js.map +1 -0
  215. package/dist/lib/role/index.d.ts +3 -0
  216. package/dist/lib/role/index.d.ts.map +1 -1
  217. package/dist/lib/role/index.js +3 -0
  218. package/dist/lib/role/index.js.map +1 -1
  219. package/dist/lib/role/services/role.service.d.ts +3 -1
  220. package/dist/lib/role/services/role.service.d.ts.map +1 -1
  221. package/dist/lib/role/services/role.service.js +29 -41
  222. package/dist/lib/role/services/role.service.js.map +1 -1
  223. package/dist/lib/role/utils/access-role-resolver.util.d.ts +20 -0
  224. package/dist/lib/role/utils/access-role-resolver.util.d.ts.map +1 -0
  225. package/dist/lib/role/utils/access-role-resolver.util.js +63 -0
  226. package/dist/lib/role/utils/access-role-resolver.util.js.map +1 -0
  227. package/dist/lib/session/services/session-manager.service.d.ts +8 -3
  228. package/dist/lib/session/services/session-manager.service.d.ts.map +1 -1
  229. package/dist/lib/session/services/session-manager.service.js +30 -11
  230. package/dist/lib/session/services/session-manager.service.js.map +1 -1
  231. package/dist/lib/session/session.module.d.ts.map +1 -1
  232. package/dist/lib/session/session.module.js +5 -1
  233. package/dist/lib/session/session.module.js.map +1 -1
  234. package/dist/lib/tenant/decorators/current-tenant.decorator.d.ts.map +1 -1
  235. package/dist/lib/tenant/decorators/current-tenant.decorator.js.map +1 -1
  236. package/dist/lib/tenant/entities/tenant.entity.d.ts +1 -1
  237. package/dist/lib/tenant/entities/tenant.entity.d.ts.map +1 -1
  238. package/dist/lib/tenant/entities/tenant.entity.js +1 -1
  239. package/dist/lib/tenant/entities/tenant.entity.js.map +1 -1
  240. package/dist/lib/tenant/index.d.ts +1 -1
  241. package/dist/lib/tenant/index.d.ts.map +1 -1
  242. package/dist/lib/tenant/index.js +1 -1
  243. package/dist/lib/tenant/index.js.map +1 -1
  244. package/dist/lib/tenant/tenant-context/services/base-tenant-context.service.d.ts +1 -1
  245. package/dist/lib/tenant/tenant-context/services/base-tenant-context.service.d.ts.map +1 -1
  246. package/dist/lib/tenant/tenant-context/services/disabled-tenant-context.service.d.ts +1 -1
  247. package/dist/lib/tenant/tenant-context/services/disabled-tenant-context.service.d.ts.map +1 -1
  248. package/dist/lib/tenant/tenant-context/tenant-context.interface.d.ts +1 -1
  249. package/dist/lib/tenant/tenant-context/tenant-context.interface.d.ts.map +1 -1
  250. package/dist/lib/user/entities/platform-access.entity.d.ts +16 -0
  251. package/dist/lib/user/entities/platform-access.entity.d.ts.map +1 -0
  252. package/dist/lib/user/entities/platform-access.entity.js +95 -0
  253. package/dist/lib/user/entities/platform-access.entity.js.map +1 -0
  254. package/dist/lib/user/entities/user-access.entity.d.ts +22 -0
  255. package/dist/lib/user/entities/user-access.entity.d.ts.map +1 -0
  256. package/dist/lib/{tenant → user}/entities/user-access.entity.js +35 -4
  257. package/dist/lib/user/entities/user-access.entity.js.map +1 -0
  258. package/dist/lib/user/entities/user.entity.d.ts +10 -12
  259. package/dist/lib/user/entities/user.entity.d.ts.map +1 -1
  260. package/dist/lib/user/entities/user.entity.js +91 -73
  261. package/dist/lib/user/entities/user.entity.js.map +1 -1
  262. package/dist/lib/user/services/access-key.service.d.ts +1 -0
  263. package/dist/lib/user/services/access-key.service.d.ts.map +1 -1
  264. package/dist/lib/user/services/access-key.service.js +19 -3
  265. package/dist/lib/user/services/access-key.service.js.map +1 -1
  266. package/dist/lib/user/services/user.service.d.ts +27 -22
  267. package/dist/lib/user/services/user.service.d.ts.map +1 -1
  268. package/dist/lib/user/services/user.service.js +135 -84
  269. package/dist/lib/user/services/user.service.js.map +1 -1
  270. package/dist/lib/user/user.module.d.ts.map +1 -1
  271. package/dist/lib/user/user.module.js +3 -2
  272. package/dist/lib/user/user.module.js.map +1 -1
  273. package/package.json +14 -9
  274. package/dist/lib/tenant/entities/user-access.entity.d.ts +0 -19
  275. package/dist/lib/tenant/entities/user-access.entity.d.ts.map +0 -1
  276. package/dist/lib/tenant/entities/user-access.entity.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"base-tenant-context.service.d.ts","sourceRoot":"","sources":["../../../../../src/lib/tenant/tenant-context/services/base-tenant-context.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAS9D,8BAAsB,wBAAyB,YAAW,qBAAqB;IAC/D,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa;gBAA5B,aAAa,EAAE,aAAa;IAE3D,SAAS,IAAI,OAAO;IAId,kBAAkB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAK5C,gBAAgB,IAAI,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAKlD,gBAAgB,IAAI,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;CAG/D"}
1
+ {"version":3,"file":"base-tenant-context.service.d.ts","sourceRoot":"","sources":["../../../../../src/lib/tenant/tenant-context/services/base-tenant-context.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAS9D,8BAAsB,wBAAyB,YAAW,qBAAqB;IAC/D,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa;gBAA5B,aAAa,EAAE,aAAa;IAE3D,SAAS,IAAI,OAAO;IAId,kBAAkB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAK5C,gBAAgB,IAAI,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAKlD,gBAAgB,IAAI,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;CAG/D"}
@@ -1,6 +1,6 @@
1
1
  import { ITenantContextService } from '../tenant-context.interface';
2
2
  import { NestAuthTenant } from '../../entities/tenant.entity';
3
- import { NestAuthUserAccess } from '../../entities/user-access.entity';
3
+ import { NestAuthUserAccess } from '../../../user/entities/user-access.entity';
4
4
  export declare class DisabledTenantContextService implements ITenantContextService {
5
5
  isEnabled(): boolean;
6
6
  getCurrentTenantId(): Promise<string | null>;
@@ -1 +1 @@
1
- {"version":3,"file":"disabled-tenant-context.service.d.ts","sourceRoot":"","sources":["../../../../../src/lib/tenant/tenant-context/services/disabled-tenant-context.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAMvE,qBACa,4BAA6B,YAAW,qBAAqB;IACtE,SAAS,IAAI,OAAO;IAId,kBAAkB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAI5C,gBAAgB,IAAI,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAIlD,gBAAgB,IAAI,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;CAI/D"}
1
+ {"version":3,"file":"disabled-tenant-context.service.d.ts","sourceRoot":"","sources":["../../../../../src/lib/tenant/tenant-context/services/disabled-tenant-context.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAM/E,qBACa,4BAA6B,YAAW,qBAAqB;IACtE,SAAS,IAAI,OAAO;IAId,kBAAkB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAI5C,gBAAgB,IAAI,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAIlD,gBAAgB,IAAI,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;CAI/D"}
@@ -1,5 +1,5 @@
1
1
  import { NestAuthTenant } from '../entities/tenant.entity';
2
- import { NestAuthUserAccess } from '../entities/user-access.entity';
2
+ import { NestAuthUserAccess } from '../../user/entities/user-access.entity';
3
3
  export interface ITenantContextService {
4
4
  isEnabled(): boolean;
5
5
  getCurrentTenantId(): Promise<string | null>;
@@ -1 +1 @@
1
- {"version":3,"file":"tenant-context.interface.d.ts","sourceRoot":"","sources":["../../../../src/lib/tenant/tenant-context/tenant-context.interface.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,MAAM,WAAW,qBAAqB;IAClC,SAAS,IAAI,OAAO,CAAC;IACrB,kBAAkB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC7C,gBAAgB,IAAI,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAEnD,gBAAgB,IAAI,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;CAC1D"}
1
+ {"version":3,"file":"tenant-context.interface.d.ts","sourceRoot":"","sources":["../../../../src/lib/tenant/tenant-context/tenant-context.interface.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAE5E,MAAM,WAAW,qBAAqB;IAClC,SAAS,IAAI,OAAO,CAAC;IACrB,kBAAkB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC7C,gBAAgB,IAAI,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAEnD,gBAAgB,IAAI,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;CAC1D"}
@@ -0,0 +1,16 @@
1
+ import { BaseEntity, EntityManager } from 'typeorm';
2
+ import { NestAuthUser } from './user.entity';
3
+ import { NestAuthRole } from '../../role/entities/role.entity';
4
+ export declare class NestAuthPlatformAccess extends BaseEntity {
5
+ id: string;
6
+ userId: string;
7
+ user: NestAuthUser;
8
+ roles: NestAuthRole[];
9
+ isActive: boolean;
10
+ createdAt: Date;
11
+ updatedAt: Date;
12
+ getPermissions(): Promise<string[]>;
13
+ getRoles(withPermissions?: boolean): Promise<NestAuthRole[]>;
14
+ assignRoles(roleIds: string | string[], manager?: EntityManager): Promise<void>;
15
+ }
16
+ //# sourceMappingURL=platform-access.entity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-access.entity.d.ts","sourceRoot":"","sources":["../../../../src/lib/user/entities/platform-access.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAUH,UAAU,EAIV,aAAa,EAChB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAI/D,qBACa,sBAAuB,SAAQ,UAAU;IAElD,EAAE,EAAE,MAAM,CAAC;IAIX,MAAM,EAAE,MAAM,CAAC;IAIf,IAAI,EAAE,YAAY,CAAC;IASnB,KAAK,EAAE,YAAY,EAAE,CAAC;IAGtB,QAAQ,EAAE,OAAO,CAAC;IAGlB,SAAS,EAAE,IAAI,CAAC;IAGhB,SAAS,EAAE,IAAI,CAAC;IAGV,cAAc,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IASnC,QAAQ,CAAC,eAAe,UAAQ,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAa1D,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;CAgBxF"}
@@ -0,0 +1,95 @@
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 NestAuthPlatformAccess_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.NestAuthPlatformAccess = void 0;
14
+ const typeorm_1 = require("typeorm");
15
+ const user_entity_1 = require("./user.entity");
16
+ const role_entity_1 = require("../../role/entities/role.entity");
17
+ const lodash_1 = require("lodash");
18
+ const role_mapper_util_1 = require("../../role/utils/role-mapper.util");
19
+ let NestAuthPlatformAccess = NestAuthPlatformAccess_1 = class NestAuthPlatformAccess extends typeorm_1.BaseEntity {
20
+ id;
21
+ userId;
22
+ user;
23
+ roles;
24
+ isActive;
25
+ createdAt;
26
+ updatedAt;
27
+ async getPermissions() {
28
+ const roles = await this.getRoles(true);
29
+ return (0, lodash_1.chain)(roles)
30
+ .map((role) => (0, role_mapper_util_1.getRolePermissionNames)(role))
31
+ .flatten()
32
+ .uniq()
33
+ .value();
34
+ }
35
+ async getRoles(withPermissions = false) {
36
+ const access = await NestAuthPlatformAccess_1.findOne({
37
+ where: { userId: this.userId, isActive: true },
38
+ relations: ['roles', ...(withPermissions ? ['roles.rolePermissions', 'roles.rolePermissions.permission'] : [])],
39
+ });
40
+ return access?.roles?.length ? access.roles : [];
41
+ }
42
+ async assignRoles(roleIds, manager) {
43
+ const ids = Array.isArray(roleIds) ? roleIds : [roleIds];
44
+ const roleRepo = manager
45
+ ? manager.getRepository(role_entity_1.NestAuthRole)
46
+ : role_entity_1.NestAuthRole.getRepository();
47
+ const accessRepo = manager
48
+ ? manager.getRepository(NestAuthPlatformAccess_1)
49
+ : NestAuthPlatformAccess_1.getRepository();
50
+ this.roles = ids.length
51
+ ? await roleRepo.find({ where: { id: (0, typeorm_1.In)(ids) } })
52
+ : [];
53
+ await accessRepo.save(this);
54
+ }
55
+ };
56
+ exports.NestAuthPlatformAccess = NestAuthPlatformAccess;
57
+ __decorate([
58
+ (0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
59
+ __metadata("design:type", String)
60
+ ], NestAuthPlatformAccess.prototype, "id", void 0);
61
+ __decorate([
62
+ (0, typeorm_1.Column)({ nullable: false, unique: true }),
63
+ (0, typeorm_1.Index)(),
64
+ __metadata("design:type", String)
65
+ ], NestAuthPlatformAccess.prototype, "userId", void 0);
66
+ __decorate([
67
+ (0, typeorm_1.OneToOne)(() => user_entity_1.NestAuthUser, user => user.platformAccess, { onDelete: 'CASCADE' }),
68
+ (0, typeorm_1.JoinColumn)({ name: 'userId' }),
69
+ __metadata("design:type", user_entity_1.NestAuthUser)
70
+ ], NestAuthPlatformAccess.prototype, "user", void 0);
71
+ __decorate([
72
+ (0, typeorm_1.ManyToMany)(() => role_entity_1.NestAuthRole, role => role.platformAccesses, { onDelete: 'CASCADE' }),
73
+ (0, typeorm_1.JoinTable)({
74
+ name: 'nest_auth_platform_access_roles',
75
+ joinColumn: { name: 'nestAuthPlatformAccessId', referencedColumnName: 'id' },
76
+ inverseJoinColumn: { name: 'nestAuthRolesId', referencedColumnName: 'id' },
77
+ }),
78
+ __metadata("design:type", Array)
79
+ ], NestAuthPlatformAccess.prototype, "roles", void 0);
80
+ __decorate([
81
+ (0, typeorm_1.Column)({ default: true }),
82
+ __metadata("design:type", Boolean)
83
+ ], NestAuthPlatformAccess.prototype, "isActive", void 0);
84
+ __decorate([
85
+ (0, typeorm_1.CreateDateColumn)(),
86
+ __metadata("design:type", Date)
87
+ ], NestAuthPlatformAccess.prototype, "createdAt", void 0);
88
+ __decorate([
89
+ (0, typeorm_1.UpdateDateColumn)(),
90
+ __metadata("design:type", Date)
91
+ ], NestAuthPlatformAccess.prototype, "updatedAt", void 0);
92
+ exports.NestAuthPlatformAccess = NestAuthPlatformAccess = NestAuthPlatformAccess_1 = __decorate([
93
+ (0, typeorm_1.Entity)('nest_auth_platform_accesses')
94
+ ], NestAuthPlatformAccess);
95
+ //# sourceMappingURL=platform-access.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-access.entity.js","sourceRoot":"","sources":["../../../../src/lib/user/entities/platform-access.entity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { BaseEntity, EntityManager } from 'typeorm';
2
+ import { NestAuthTenant } from '../../tenant/entities/tenant.entity';
3
+ import { NestAuthUser } from './user.entity';
4
+ import { NestAuthRole } from '../../role/entities/role.entity';
5
+ export declare class NestAuthUserAccess extends BaseEntity {
6
+ id: string;
7
+ userId: string;
8
+ tenantId: string;
9
+ user: NestAuthUser;
10
+ tenant: NestAuthTenant;
11
+ roles: NestAuthRole[];
12
+ isActive: boolean;
13
+ isDefault: boolean;
14
+ status: string;
15
+ metadata?: Record<string, any>;
16
+ createdAt: Date;
17
+ updatedAt: Date;
18
+ getPermissions(tenantId: string | null): Promise<string[]>;
19
+ getRoles(tenantId?: string | null, withPermissions?: boolean): Promise<NestAuthRole[]>;
20
+ assignRoles(roleIds: string | string[], manager?: EntityManager): Promise<void>;
21
+ }
22
+ //# sourceMappingURL=user-access.entity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-access.entity.d.ts","sourceRoot":"","sources":["../../../../src/lib/user/entities/user-access.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAWH,UAAU,EAIV,aAAa,EAChB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAI/D,qBASa,kBAAmB,SAAQ,UAAU;IAE9C,EAAE,EAAE,MAAM,CAAC;IAKX,MAAM,EAAE,MAAM,CAAC;IAKf,QAAQ,EAAE,MAAM,CAAC;IAGjB,IAAI,EAAE,YAAY,CAAC;IAGnB,MAAM,EAAE,cAAc,CAAC;IASvB,KAAK,EAAE,YAAY,EAAE,CAAC;IAGtB,QAAQ,EAAE,OAAO,CAAC;IAGlB,SAAS,EAAE,OAAO,CAAC;IAGnB,MAAM,EAAE,MAAM,CAAC;IAGf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAG/B,SAAS,EAAE,IAAI,CAAC;IAGhB,SAAS,EAAE,IAAI,CAAC;IAEV,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAS1D,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,eAAe,UAAQ,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAapF,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;CAiBxF"}
@@ -8,13 +8,16 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
+ var NestAuthUserAccess_1;
11
12
  Object.defineProperty(exports, "__esModule", { value: true });
12
13
  exports.NestAuthUserAccess = void 0;
13
14
  const typeorm_1 = require("typeorm");
14
- const tenant_entity_1 = require("./tenant.entity");
15
- const user_entity_1 = require("../../user/entities/user.entity");
15
+ const tenant_entity_1 = require("../../tenant/entities/tenant.entity");
16
+ const user_entity_1 = require("./user.entity");
16
17
  const role_entity_1 = require("../../role/entities/role.entity");
17
- let NestAuthUserAccess = class NestAuthUserAccess extends typeorm_1.BaseEntity {
18
+ const lodash_1 = require("lodash");
19
+ const role_mapper_util_1 = require("../../role/utils/role-mapper.util");
20
+ let NestAuthUserAccess = NestAuthUserAccess_1 = class NestAuthUserAccess extends typeorm_1.BaseEntity {
18
21
  id;
19
22
  userId;
20
23
  tenantId;
@@ -27,6 +30,34 @@ let NestAuthUserAccess = class NestAuthUserAccess extends typeorm_1.BaseEntity {
27
30
  metadata;
28
31
  createdAt;
29
32
  updatedAt;
33
+ async getPermissions(tenantId) {
34
+ const roles = await this.getRoles(tenantId, true);
35
+ return (0, lodash_1.chain)(roles)
36
+ .map((role) => (0, role_mapper_util_1.getRolePermissionNames)(role))
37
+ .flatten()
38
+ .uniq()
39
+ .value();
40
+ }
41
+ async getRoles(tenantId, withPermissions = false) {
42
+ const access = await NestAuthUserAccess_1.findOne({
43
+ where: { userId: this.userId, tenantId: tenantId ? (0, typeorm_1.Equal)(tenantId) : (0, typeorm_1.IsNull)() },
44
+ relations: ['roles', ...(withPermissions ? ['roles.rolePermissions', 'roles.rolePermissions.permission'] : [])],
45
+ });
46
+ return access?.roles?.length ? access.roles : [];
47
+ }
48
+ async assignRoles(roleIds, manager) {
49
+ const ids = Array.isArray(roleIds) ? roleIds : [roleIds];
50
+ const roleRepo = manager
51
+ ? manager.getRepository(role_entity_1.NestAuthRole)
52
+ : role_entity_1.NestAuthRole.getRepository();
53
+ const accessRepo = manager
54
+ ? manager.getRepository(NestAuthUserAccess_1)
55
+ : NestAuthUserAccess_1.getRepository();
56
+ this.roles = ids.length
57
+ ? await roleRepo.find({ where: { id: (0, typeorm_1.In)(ids) } })
58
+ : [];
59
+ await accessRepo.save(this);
60
+ }
30
61
  };
31
62
  exports.NestAuthUserAccess = NestAuthUserAccess;
32
63
  __decorate([
@@ -86,7 +117,7 @@ __decorate([
86
117
  (0, typeorm_1.UpdateDateColumn)(),
87
118
  __metadata("design:type", Date)
88
119
  ], NestAuthUserAccess.prototype, "updatedAt", void 0);
89
- exports.NestAuthUserAccess = NestAuthUserAccess = __decorate([
120
+ exports.NestAuthUserAccess = NestAuthUserAccess = NestAuthUserAccess_1 = __decorate([
90
121
  (0, typeorm_1.Entity)('nest_auth_user_accesses'),
91
122
  (0, typeorm_1.Index)('UQ_user_tenant_not_null', ['userId', 'tenantId'], {
92
123
  unique: true,
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-access.entity.js","sourceRoot":"","sources":["../../../../src/lib/user/entities/user-access.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,qCAgBiB;AACjB,uEAAqE;AACrE,+CAA6C;AAC7C,iEAA+D;AAC/D,mCAA+B;AAC/B,wEAA2E;AAWpE,IAAM,kBAAkB,0BAAxB,MAAM,kBAAmB,SAAQ,oBAAU;IAE9C,EAAE,CAAS;IAKX,MAAM,CAAS;IAKf,QAAQ,CAAS;IAGjB,IAAI,CAAe;IAGnB,MAAM,CAAiB;IASvB,KAAK,CAAiB;IAGtB,QAAQ,CAAU;IAGlB,SAAS,CAAU;IAGnB,MAAM,CAAS;IAGf,QAAQ,CAAuB;IAG/B,SAAS,CAAO;IAGhB,SAAS,CAAO;IAEhB,KAAK,CAAC,cAAc,CAAC,QAAuB;QACxC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAClD,OAAO,IAAA,cAAK,EAAC,KAAK,CAAC;aACd,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,yCAAsB,EAAC,IAAI,CAAC,CAAC;aAC3C,OAAO,EAAE;aACT,IAAI,EAAE;aACN,KAAK,EAAE,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,QAAwB,EAAE,eAAe,GAAG,KAAK;QAC5D,MAAM,MAAM,GAAG,MAAM,oBAAkB,CAAC,OAAO,CAAC;YAC5C,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAA,eAAK,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAA,gBAAM,GAAE,EAAE;YAC/E,SAAS,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,uBAAuB,EAAE,kCAAkC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SAClH,CAAC,CAAC;QAEH,OAAO,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACrD,CAAC;IAMD,KAAK,CAAC,WAAW,CAAC,OAA0B,EAAE,OAAuB;QACjE,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAEzD,MAAM,QAAQ,GAAG,OAAO;YACpB,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,0BAAY,CAAC;YACrC,CAAC,CAAC,0BAAY,CAAC,aAAa,EAAE,CAAC;QACnC,MAAM,UAAU,GAAG,OAAO;YACtB,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,oBAAkB,CAAC;YAC3C,CAAC,CAAC,oBAAkB,CAAC,aAAa,EAAE,CAAC;QAEzC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,MAAM;YACnB,CAAC,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,IAAA,YAAE,EAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACjD,CAAC,CAAC,EAAE,CAAC;QAET,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;CAEJ,CAAA;AAtFY,gDAAkB;AAE3B;IADC,IAAA,gCAAsB,EAAC,MAAM,CAAC;;8CACpB;AAKX;IAHC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC3B,IAAA,eAAK,GAAE;IACP,IAAA,oBAAU,EAAC,CAAC,MAA0B,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;;kDACzC;AAKf;IAHC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1B,IAAA,eAAK,GAAE;IACP,IAAA,oBAAU,EAAC,CAAC,MAA0B,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;;oDACzC;AAGjB;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,0BAAY,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;8BACjD,0BAAY;gDAAC;AAGnB;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,8BAAc,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BACjE,8BAAc;kDAAC;AASvB;IANC,IAAA,oBAAU,EAAC,GAAG,EAAE,CAAC,0BAAY,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IAClF,IAAA,mBAAS,EAAC;QACP,IAAI,EAAE,6BAA6B;QACnC,UAAU,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,IAAI,EAAE;QACxE,iBAAiB,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,IAAI,EAAE;KAC7E,CAAC;;iDACoB;AAGtB;IADC,IAAA,gBAAM,EAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;oDACR;AAGlB;IADC,IAAA,gBAAM,EAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;;qDACR;AAGnB;IADC,IAAA,gBAAM,EAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;;kDACf;AAGf;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;oDAChC;AAG/B;IADC,IAAA,0BAAgB,GAAE;8BACR,IAAI;qDAAC;AAGhB;IADC,IAAA,0BAAgB,GAAE;8BACR,IAAI;qDAAC;6BA7CP,kBAAkB;IAT9B,IAAA,gBAAM,EAAC,yBAAyB,CAAC;IACjC,IAAA,eAAK,EAAC,yBAAyB,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE;QACtD,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE,wBAAwB;KAClC,CAAC;IACD,IAAA,eAAK,EAAC,qBAAqB,EAAE,CAAC,QAAQ,CAAC,EAAE;QACtC,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE,oBAAoB;KAC9B,CAAC;GACW,kBAAkB,CAsF9B"}
@@ -1,10 +1,10 @@
1
- import { BaseEntity } from "typeorm";
1
+ import { BaseEntity, EntityManager } from "typeorm";
2
2
  import { NestAuthIdentity } from "./identity.entity";
3
3
  import { NestAuthSession } from "../../session/entities/session.entity";
4
4
  import { NestAuthOTP } from "../../auth/entities/otp.entity";
5
5
  import { NestAuthMFASecret } from "../../auth/entities/mfa-secret.entity";
6
- import { NestAuthRole } from "../../role/entities/role.entity";
7
- import { NestAuthUserAccess } from "../../tenant/entities/user-access.entity";
6
+ import { NestAuthUserAccess } from "./user-access.entity";
7
+ import { NestAuthPlatformAccess } from "./platform-access.entity";
8
8
  export declare class NestAuthUser extends BaseEntity {
9
9
  id: string;
10
10
  email: string;
@@ -12,7 +12,6 @@ export declare class NestAuthUser extends BaseEntity {
12
12
  phone: string;
13
13
  phoneVerifiedAt: Date;
14
14
  passwordHash: string;
15
- isVerified: boolean;
16
15
  isActive: boolean;
17
16
  metadata?: Record<string, any>;
18
17
  isMfaEnabled: boolean;
@@ -22,17 +21,16 @@ export declare class NestAuthUser extends BaseEntity {
22
21
  sessions: NestAuthSession[];
23
22
  otps: NestAuthOTP[];
24
23
  userAccesses: NestAuthUserAccess[];
24
+ platformAccess: NestAuthPlatformAccess;
25
25
  createdAt: Date;
26
26
  updatedAt: Date;
27
27
  updateTenantFields(): void;
28
- getPermissions(tenantId: string): Promise<string[]>;
29
- getRoles(tenantId?: string | null, withPermissions?: boolean): Promise<NestAuthRole[]>;
30
- assignRoles(roleIds: string | string[], tenantId?: string | null): Promise<void>;
31
- private getOrCreateUserAccess;
32
- findOrCreateIdentity(provider: string, providerId: string): Promise<NestAuthIdentity>;
33
- updateOrCreateIdentity(provider: string, data: Partial<NestAuthIdentity>): Promise<NestAuthIdentity>;
34
- updateEmail(newEmail: string): Promise<void>;
35
- updatePhone(newPhone: string | null | undefined): Promise<void>;
28
+ getUserAccess(tenantId?: string, createIfNotExists?: boolean, manager?: EntityManager): Promise<NestAuthUserAccess>;
29
+ getPlatformAccess(createIfNotExists?: boolean, manager?: EntityManager): Promise<NestAuthPlatformAccess>;
30
+ findOrCreateIdentity(provider: string, providerId: string, manager?: EntityManager): Promise<NestAuthIdentity>;
31
+ updateOrCreateIdentity(provider: string, data: Partial<NestAuthIdentity>, manager?: EntityManager): Promise<NestAuthIdentity>;
32
+ updateEmail(newEmail: string, manager?: EntityManager): Promise<void>;
33
+ updatePhone(newPhone: string | null | undefined, manager?: EntityManager): Promise<void>;
36
34
  validatePassword(password: string): Promise<boolean>;
37
35
  setPassword(password: string): Promise<void>;
38
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"user.entity.d.ts","sourceRoot":"","sources":["../../../../src/lib/user/entities/user.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAOH,UAAU,EAMb,MAAM,SAAS,CAAC;AAIjB,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAExE,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAK9E,qBACa,YAAa,SAAQ,UAAU;IAExC,EAAE,EAAE,MAAM,CAAC;IAIX,KAAK,EAAE,MAAM,CAAC;IAId,eAAe,EAAE,IAAI,CAAC;IAItB,KAAK,EAAE,MAAM,CAAC;IAId,eAAe,EAAE,IAAI,CAAC;IAGtB,YAAY,EAAE,MAAM,CAAC;IAGrB,UAAU,EAAE,OAAO,CAAC;IAGpB,QAAQ,EAAE,OAAO,CAAC;IAGlB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAG/B,YAAY,EAAE,OAAO,CAAC;IAGtB,eAAe,CAAC,EAAE,MAAM,CAAC;IAGzB,UAAU,EAAE,gBAAgB,EAAE,CAAC;IAG/B,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAGhC,QAAQ,EAAE,eAAe,EAAE,CAAC;IAG5B,IAAI,EAAE,WAAW,EAAE,CAAC;IAGpB,YAAY,EAAE,kBAAkB,EAAE,CAAC;IAGnC,SAAS,EAAE,IAAI,CAAC;IAGhB,SAAS,EAAE,IAAI,CAAC;IAIhB,kBAAkB;IAMZ,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IASnD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,eAAe,UAAQ,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAYpF,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;YASxE,qBAAqB;IAgB7B,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAiBzD,sBAAsB,CACxB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAChC,OAAO,CAAC,gBAAgB,CAAC;IAwBtB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuB5C,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB/D,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAwBpD,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAqBrD"}
1
+ {"version":3,"file":"user.entity.d.ts","sourceRoot":"","sources":["../../../../src/lib/user/entities/user.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAOH,UAAU,EAMV,aAAa,EAEhB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,qBACa,YAAa,SAAQ,UAAU;IAExC,EAAE,EAAE,MAAM,CAAC;IAIX,KAAK,EAAE,MAAM,CAAC;IAId,eAAe,EAAE,IAAI,CAAC;IAItB,KAAK,EAAE,MAAM,CAAC;IAId,eAAe,EAAE,IAAI,CAAC;IAGtB,YAAY,EAAE,MAAM,CAAC;IAGrB,QAAQ,EAAE,OAAO,CAAC;IAGlB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAG/B,YAAY,EAAE,OAAO,CAAC;IAGtB,eAAe,CAAC,EAAE,MAAM,CAAC;IAGzB,UAAU,EAAE,gBAAgB,EAAE,CAAC;IAG/B,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAGhC,QAAQ,EAAE,eAAe,EAAE,CAAC;IAG5B,IAAI,EAAE,WAAW,EAAE,CAAC;IAGpB,YAAY,EAAE,kBAAkB,EAAE,CAAC;IAGnC,cAAc,EAAE,sBAAsB,CAAC;IAGvC,SAAS,EAAE,IAAI,CAAC;IAGhB,SAAS,EAAE,IAAI,CAAC;IAIhB,kBAAkB;IAUZ,aAAa,CACf,QAAQ,GAAE,MAAa,EACvB,iBAAiB,GAAE,OAAe,EAClC,OAAO,CAAC,EAAE,aAAa;IAwBrB,iBAAiB,CAAC,iBAAiB,GAAE,OAAe,EAAE,OAAO,CAAC,EAAE,aAAa;IAuB7E,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa;IA0BlF,sBAAsB,CACxB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,OAAO,CAAC,gBAAgB,CAAC,EAC/B,OAAO,CAAC,EAAE,aAAa,GACxB,OAAO,CAAC,gBAAgB,CAAC;IA8BtB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAiCrE,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BxF,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA+BpD,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAqBrD"}
@@ -8,30 +8,27 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
+ var NestAuthUser_1;
11
12
  Object.defineProperty(exports, "__esModule", { value: true });
12
13
  exports.NestAuthUser = void 0;
13
14
  const typeorm_1 = require("typeorm");
14
- const typeorm_2 = require("typeorm");
15
15
  const argon2_1 = require("@node-rs/argon2");
16
16
  const auth_config_service_1 = require("../../core/services/auth-config.service");
17
17
  const identity_entity_1 = require("./identity.entity");
18
18
  const session_entity_1 = require("../../session/entities/session.entity");
19
- const lodash_1 = require("lodash");
20
19
  const otp_entity_1 = require("../../auth/entities/otp.entity");
21
20
  const mfa_secret_entity_1 = require("../../auth/entities/mfa-secret.entity");
22
- const role_entity_1 = require("../../role/entities/role.entity");
23
- const user_access_entity_1 = require("../../tenant/entities/user-access.entity");
21
+ const user_access_entity_1 = require("./user-access.entity");
24
22
  const auth_constants_1 = require("../../auth.constants");
25
23
  const utils_1 = require("../../utils");
26
- const role_mapper_util_1 = require("../../role/utils/role-mapper.util");
27
- let NestAuthUser = class NestAuthUser extends typeorm_1.BaseEntity {
24
+ const platform_access_entity_1 = require("./platform-access.entity");
25
+ let NestAuthUser = NestAuthUser_1 = class NestAuthUser extends typeorm_1.BaseEntity {
28
26
  id;
29
27
  email;
30
28
  emailVerifiedAt;
31
29
  phone;
32
30
  phoneVerifiedAt;
33
31
  passwordHash;
34
- isVerified;
35
32
  isActive;
36
33
  metadata;
37
34
  isMfaEnabled;
@@ -41,6 +38,7 @@ let NestAuthUser = class NestAuthUser extends typeorm_1.BaseEntity {
41
38
  sessions;
42
39
  otps;
43
40
  userAccesses;
41
+ platformAccess;
44
42
  createdAt;
45
43
  updatedAt;
46
44
  updateTenantFields() {
@@ -48,117 +46,137 @@ let NestAuthUser = class NestAuthUser extends typeorm_1.BaseEntity {
48
46
  this.email = this.email.toLowerCase().trim();
49
47
  }
50
48
  }
51
- async getPermissions(tenantId) {
52
- const roles = await this.getRoles(tenantId, true);
53
- return (0, lodash_1.chain)(roles)
54
- .map((role) => (0, role_mapper_util_1.getRolePermissionNames)(role))
55
- .flatten()
56
- .uniq()
57
- .value();
58
- }
59
- async getRoles(tenantId, withPermissions = false) {
60
- const access = await user_access_entity_1.NestAuthUserAccess.findOne({
61
- where: { userId: this.id, tenantId: tenantId || (0, typeorm_1.IsNull)() },
62
- relations: ['roles', ...(withPermissions ? ['roles.rolePermissions', 'roles.rolePermissions.permission'] : [])],
49
+ async getUserAccess(tenantId = null, createIfNotExists = false, manager) {
50
+ const repo = manager
51
+ ? manager.getRepository(user_access_entity_1.NestAuthUserAccess)
52
+ : user_access_entity_1.NestAuthUserAccess.getRepository();
53
+ const existingUserAccess = await repo.findOne({
54
+ where: { userId: this.id, tenantId: tenantId ? (0, typeorm_1.Equal)(tenantId) : (0, typeorm_1.IsNull)() }
63
55
  });
64
- if (access?.roles?.length) {
65
- return access.roles;
56
+ if (existingUserAccess) {
57
+ return existingUserAccess;
66
58
  }
67
- return [];
68
- }
69
- async assignRoles(roleIds, tenantId) {
70
- const access = await this.getOrCreateUserAccess(tenantId);
71
- const ids = Array.isArray(roleIds) ? roleIds : [roleIds];
72
- access.roles = ids.length
73
- ? await role_entity_1.NestAuthRole.find({ where: { id: (0, typeorm_2.In)(ids) } })
74
- : [];
75
- await access.save();
59
+ if (createIfNotExists) {
60
+ const userAccess = repo.create({ userId: this.id, tenantId });
61
+ await repo.save(userAccess);
62
+ return userAccess;
63
+ }
64
+ return null;
76
65
  }
77
- async getOrCreateUserAccess(tenantId) {
78
- const config = auth_config_service_1.AuthConfigService.getOptions();
79
- const tenantRequired = (0, utils_1.requiredTenant)(config?.tenant ?? {}, tenantId);
80
- let access = await user_access_entity_1.NestAuthUserAccess.findOne({
81
- where: { userId: this.id, ...tenantRequired ? { tenantId } : {} },
82
- relations: ['roles'],
66
+ async getPlatformAccess(createIfNotExists = false, manager) {
67
+ const repo = manager
68
+ ? manager.getRepository(platform_access_entity_1.NestAuthPlatformAccess)
69
+ : platform_access_entity_1.NestAuthPlatformAccess.getRepository();
70
+ const existingPlatformAccess = await repo.findOne({
71
+ where: { userId: this.id }
83
72
  });
84
- if (!access) {
85
- access = user_access_entity_1.NestAuthUserAccess.create({ userId: this.id, ...tenantId ? { tenantId } : {} });
86
- await access.save();
87
- access.roles = [];
73
+ if (existingPlatformAccess) {
74
+ return existingPlatformAccess;
75
+ }
76
+ if (createIfNotExists) {
77
+ const platformAccess = repo.create({ userId: this.id });
78
+ await repo.save(platformAccess);
79
+ return platformAccess;
88
80
  }
89
- return access;
81
+ return null;
90
82
  }
91
- async findOrCreateIdentity(provider, providerId) {
92
- const existingIdentity = await identity_entity_1.NestAuthIdentity.findOne({
83
+ async findOrCreateIdentity(provider, providerId, manager) {
84
+ const repo = manager
85
+ ? manager.getRepository(identity_entity_1.NestAuthIdentity)
86
+ : identity_entity_1.NestAuthIdentity.getRepository();
87
+ const existingIdentity = await repo.findOne({
93
88
  where: { provider, providerId, userId: this.id }
94
89
  });
95
90
  if (existingIdentity) {
96
91
  return existingIdentity;
97
92
  }
98
- const identity = new identity_entity_1.NestAuthIdentity();
99
- identity.provider = provider;
100
- identity.providerId = providerId;
101
- identity.user = this;
102
- return identity.save();
93
+ const identity = repo.create({
94
+ provider,
95
+ providerId,
96
+ userId: this.id,
97
+ });
98
+ return repo.save(identity);
103
99
  }
104
- async updateOrCreateIdentity(provider, data) {
105
- const existingIdentity = await identity_entity_1.NestAuthIdentity.findOne({
100
+ async updateOrCreateIdentity(provider, data, manager) {
101
+ const repo = manager
102
+ ? manager.getRepository(identity_entity_1.NestAuthIdentity)
103
+ : identity_entity_1.NestAuthIdentity.getRepository();
104
+ const existingIdentity = await repo.findOne({
106
105
  where: { provider, userId: this.id },
107
106
  });
108
107
  if (existingIdentity) {
109
108
  Object.assign(existingIdentity, data);
110
- return existingIdentity.save();
109
+ return repo.save(existingIdentity);
111
110
  }
112
- const newIdentity = identity_entity_1.NestAuthIdentity.create({
111
+ const newIdentity = repo.create({
113
112
  provider,
114
113
  userId: this.id,
115
114
  ...data,
116
115
  });
117
- return newIdentity.save();
116
+ return repo.save(newIdentity);
118
117
  }
119
- async updateEmail(newEmail) {
118
+ async updateEmail(newEmail, manager) {
120
119
  const normalized = newEmail ? newEmail.toLowerCase().trim() : null;
121
120
  const previousEmail = this.email?.toLowerCase().trim() ?? null;
122
121
  this.email = normalized ?? undefined;
123
122
  if (previousEmail !== normalized) {
124
123
  this.emailVerifiedAt = null;
125
124
  }
125
+ const identityRepo = manager
126
+ ? manager.getRepository(identity_entity_1.NestAuthIdentity)
127
+ : identity_entity_1.NestAuthIdentity.getRepository();
128
+ const userRepo = manager
129
+ ? manager.getRepository(NestAuthUser_1)
130
+ : NestAuthUser_1.getRepository();
126
131
  if (normalized) {
127
- await this.updateOrCreateIdentity(auth_constants_1.EMAIL_AUTH_PROVIDER, { providerId: normalized });
132
+ await this.updateOrCreateIdentity(auth_constants_1.EMAIL_AUTH_PROVIDER, { providerId: normalized }, manager);
128
133
  }
129
134
  else {
130
- const identity = await identity_entity_1.NestAuthIdentity.findOne({
135
+ const identity = await identityRepo.findOne({
131
136
  where: { userId: this.id, provider: auth_constants_1.EMAIL_AUTH_PROVIDER },
132
137
  });
133
138
  if (identity) {
134
- await identity.remove();
139
+ await identityRepo.remove(identity);
135
140
  }
136
141
  }
137
- await this.save();
142
+ await userRepo.save(this);
138
143
  }
139
- async updatePhone(newPhone) {
144
+ async updatePhone(newPhone, manager) {
140
145
  const value = (0, utils_1.normalizedPhone)(newPhone);
141
146
  const previousPhone = (0, utils_1.normalizedPhone)(this.phone) ?? null;
142
147
  this.phone = value ?? undefined;
143
148
  if (previousPhone !== value) {
144
149
  this.phoneVerifiedAt = null;
145
150
  }
151
+ const identityRepo = manager
152
+ ? manager.getRepository(identity_entity_1.NestAuthIdentity)
153
+ : identity_entity_1.NestAuthIdentity.getRepository();
154
+ const userRepo = manager
155
+ ? manager.getRepository(NestAuthUser_1)
156
+ : NestAuthUser_1.getRepository();
146
157
  if (value) {
147
- await this.updateOrCreateIdentity(auth_constants_1.PHONE_AUTH_PROVIDER, { providerId: value });
158
+ await this.updateOrCreateIdentity(auth_constants_1.PHONE_AUTH_PROVIDER, { providerId: value }, manager);
148
159
  }
149
160
  else {
150
- const identity = await identity_entity_1.NestAuthIdentity.findOne({
161
+ const identity = await identityRepo.findOne({
151
162
  where: { userId: this.id, provider: auth_constants_1.PHONE_AUTH_PROVIDER },
152
163
  });
153
164
  if (identity) {
154
- await identity.remove();
165
+ await identityRepo.remove(identity);
155
166
  }
156
167
  }
157
- await this.save();
168
+ await userRepo.save(this);
158
169
  }
159
170
  async validatePassword(password) {
160
- if (!this.passwordHash)
161
- return false;
171
+ let passwordHash = this.passwordHash;
172
+ if (!this.passwordHash) {
173
+ const user = await NestAuthUser_1.createQueryBuilder('user').select('user.passwordHash').where('user.id = :id', { id: this.id }).getOne();
174
+ if (!user?.passwordHash) {
175
+ return false;
176
+ }
177
+ passwordHash = user.passwordHash;
178
+ }
179
+ ;
162
180
  const options = auth_config_service_1.AuthConfigService.getOptions();
163
181
  const hasCustomHash = !!options.password?.hash;
164
182
  const hasCustomVerify = !!options.password?.verify;
@@ -166,10 +184,10 @@ let NestAuthUser = class NestAuthUser extends typeorm_1.BaseEntity {
166
184
  throw new Error('password.hash and password.verify must be provided together');
167
185
  }
168
186
  if (hasCustomVerify) {
169
- return await options.password.verify(password, this.passwordHash);
187
+ return await options.password.verify(password, passwordHash);
170
188
  }
171
189
  try {
172
- return await (0, argon2_1.verify)(this.passwordHash, password);
190
+ return await (0, argon2_1.verify)(passwordHash, password);
173
191
  }
174
192
  catch (error) {
175
193
  return false;
@@ -220,13 +238,9 @@ __decorate([
220
238
  __metadata("design:type", Date)
221
239
  ], NestAuthUser.prototype, "phoneVerifiedAt", void 0);
222
240
  __decorate([
223
- (0, typeorm_1.Column)({ nullable: true }),
241
+ (0, typeorm_1.Column)({ nullable: true, select: false }),
224
242
  __metadata("design:type", String)
225
243
  ], NestAuthUser.prototype, "passwordHash", void 0);
226
- __decorate([
227
- (0, typeorm_1.Column)({ default: false }),
228
- __metadata("design:type", Boolean)
229
- ], NestAuthUser.prototype, "isVerified", void 0);
230
244
  __decorate([
231
245
  (0, typeorm_1.Column)({ default: true }),
232
246
  __metadata("design:type", Boolean)
@@ -263,6 +277,10 @@ __decorate([
263
277
  (0, typeorm_1.OneToMany)(() => user_access_entity_1.NestAuthUserAccess, access => access.user),
264
278
  __metadata("design:type", Array)
265
279
  ], NestAuthUser.prototype, "userAccesses", void 0);
280
+ __decorate([
281
+ (0, typeorm_1.OneToOne)(() => platform_access_entity_1.NestAuthPlatformAccess, access => access.user),
282
+ __metadata("design:type", platform_access_entity_1.NestAuthPlatformAccess)
283
+ ], NestAuthUser.prototype, "platformAccess", void 0);
266
284
  __decorate([
267
285
  (0, typeorm_1.CreateDateColumn)(),
268
286
  __metadata("design:type", Date)
@@ -278,7 +296,7 @@ __decorate([
278
296
  __metadata("design:paramtypes", []),
279
297
  __metadata("design:returntype", void 0)
280
298
  ], NestAuthUser.prototype, "updateTenantFields", null);
281
- exports.NestAuthUser = NestAuthUser = __decorate([
299
+ exports.NestAuthUser = NestAuthUser = NestAuthUser_1 = __decorate([
282
300
  (0, typeorm_1.Entity)('nest_auth_users')
283
301
  ], NestAuthUser);
284
302
  //# sourceMappingURL=user.entity.js.map