@ackplus/nest-auth 2.0.0-beta.9 → 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.
- package/README.md +83 -130
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/admin-console/admin-console.module.js +1 -1
- package/dist/lib/admin-console/admin-console.module.js.map +1 -1
- package/dist/lib/admin-console/controllers/admin-auth.controller.d.ts +3 -3
- package/dist/lib/admin-console/controllers/admin-auth.controller.d.ts.map +1 -1
- package/dist/lib/admin-console/controllers/admin-auth.controller.js +30 -12
- package/dist/lib/admin-console/controllers/admin-auth.controller.js.map +1 -1
- package/dist/lib/admin-console/controllers/admin-console.controller.d.ts +1 -1
- package/dist/lib/admin-console/controllers/admin-console.controller.d.ts.map +1 -1
- package/dist/lib/admin-console/controllers/admin-console.controller.js +19 -9
- package/dist/lib/admin-console/controllers/admin-console.controller.js.map +1 -1
- package/dist/lib/admin-console/controllers/admin-permissions.controller.d.ts.map +1 -1
- package/dist/lib/admin-console/controllers/admin-permissions.controller.js +19 -1
- package/dist/lib/admin-console/controllers/admin-permissions.controller.js.map +1 -1
- package/dist/lib/admin-console/controllers/admin-roles.controller.d.ts.map +1 -1
- package/dist/lib/admin-console/controllers/admin-roles.controller.js +15 -1
- package/dist/lib/admin-console/controllers/admin-roles.controller.js.map +1 -1
- package/dist/lib/admin-console/controllers/admin-tenants.controller.d.ts.map +1 -1
- package/dist/lib/admin-console/controllers/admin-tenants.controller.js +15 -1
- package/dist/lib/admin-console/controllers/admin-tenants.controller.js.map +1 -1
- package/dist/lib/admin-console/controllers/admin-users.controller.d.ts +13 -17
- package/dist/lib/admin-console/controllers/admin-users.controller.d.ts.map +1 -1
- package/dist/lib/admin-console/controllers/admin-users.controller.js +35 -13
- package/dist/lib/admin-console/controllers/admin-users.controller.js.map +1 -1
- package/dist/lib/admin-console/dto/admin-user.dto.d.ts +4 -2
- package/dist/lib/admin-console/dto/admin-user.dto.d.ts.map +1 -1
- package/dist/lib/admin-console/dto/admin-user.dto.js +16 -8
- package/dist/lib/admin-console/dto/admin-user.dto.js.map +1 -1
- package/dist/lib/admin-console/services/admin-console-config.service.d.ts.map +1 -1
- package/dist/lib/admin-console/services/admin-console-config.service.js +10 -4
- package/dist/lib/admin-console/services/admin-console-config.service.js.map +1 -1
- package/dist/lib/admin-console/services/admin-user-management.service.d.ts +1 -1
- package/dist/lib/admin-console/services/admin-user-management.service.d.ts.map +1 -1
- package/dist/lib/admin-console/services/admin-user-management.service.js +1 -1
- package/dist/lib/admin-console/services/admin-user-management.service.js.map +1 -1
- package/dist/lib/admin-console/static/index.html +632 -567
- package/dist/lib/admin-console/static/nest-auth.json +3502 -157
- package/dist/lib/audit/services/audit.service.d.ts +2 -0
- package/dist/lib/audit/services/audit.service.d.ts.map +1 -1
- package/dist/lib/audit/services/audit.service.js +23 -0
- package/dist/lib/audit/services/audit.service.js.map +1 -1
- package/dist/lib/auth/auth.module.d.ts.map +1 -1
- package/dist/lib/auth/auth.module.js +6 -0
- package/dist/lib/auth/auth.module.js.map +1 -1
- package/dist/lib/auth/controllers/auth.controller.d.ts +3 -2
- package/dist/lib/auth/controllers/auth.controller.d.ts.map +1 -1
- package/dist/lib/auth/controllers/auth.controller.js +48 -24
- package/dist/lib/auth/controllers/auth.controller.js.map +1 -1
- package/dist/lib/auth/controllers/mfa.controller.d.ts.map +1 -1
- package/dist/lib/auth/controllers/mfa.controller.js +6 -1
- package/dist/lib/auth/controllers/mfa.controller.js.map +1 -1
- package/dist/lib/auth/dto/credentials/social-credentials.dto.d.ts +2 -0
- package/dist/lib/auth/dto/credentials/social-credentials.dto.d.ts.map +1 -1
- package/dist/lib/auth/dto/credentials/social-credentials.dto.js +28 -0
- package/dist/lib/auth/dto/credentials/social-credentials.dto.js.map +1 -1
- package/dist/lib/auth/dto/requests/verify-2fa.request.dto.d.ts.map +1 -1
- package/dist/lib/auth/dto/requests/verify-2fa.request.dto.js +2 -0
- package/dist/lib/auth/dto/requests/verify-2fa.request.dto.js.map +1 -1
- package/dist/lib/auth/dto/responses/auth.response.dto.d.ts +3 -5
- package/dist/lib/auth/dto/responses/auth.response.dto.d.ts.map +1 -1
- package/dist/lib/auth/dto/responses/auth.response.dto.js +11 -27
- package/dist/lib/auth/dto/responses/auth.response.dto.js.map +1 -1
- package/dist/lib/auth/entities/otp.entity.d.ts +1 -1
- package/dist/lib/auth/entities/otp.entity.d.ts.map +1 -1
- package/dist/lib/auth/entities/otp.entity.js.map +1 -1
- package/dist/lib/auth/entities/trusted-device.entity.d.ts.map +1 -1
- package/dist/lib/auth/entities/trusted-device.entity.js +1 -1
- package/dist/lib/auth/entities/trusted-device.entity.js.map +1 -1
- package/dist/lib/auth/events/login-failed.event.d.ts +15 -0
- package/dist/lib/auth/events/login-failed.event.d.ts.map +1 -0
- package/dist/lib/auth/events/login-failed.event.js +11 -0
- package/dist/lib/auth/events/login-failed.event.js.map +1 -0
- package/dist/lib/auth/events/user-logged-in.event.d.ts +3 -1
- package/dist/lib/auth/events/user-logged-in.event.d.ts.map +1 -1
- package/dist/lib/auth/events/user-logged-in.event.js.map +1 -1
- package/dist/lib/auth/events/user-registered.event.d.ts +2 -1
- package/dist/lib/auth/events/user-registered.event.d.ts.map +1 -1
- package/dist/lib/auth/events/user-registered.event.js.map +1 -1
- package/dist/lib/auth/guards/auth.guard.d.ts.map +1 -1
- package/dist/lib/auth/guards/auth.guard.js +1 -1
- package/dist/lib/auth/guards/auth.guard.js.map +1 -1
- package/dist/lib/auth/interceptors/token-response.interceptor.d.ts.map +1 -1
- package/dist/lib/auth/interceptors/token-response.interceptor.js +4 -3
- package/dist/lib/auth/interceptors/token-response.interceptor.js.map +1 -1
- package/dist/lib/auth/services/auth.service.d.ts +17 -6
- package/dist/lib/auth/services/auth.service.d.ts.map +1 -1
- package/dist/lib/auth/services/auth.service.js +271 -287
- package/dist/lib/auth/services/auth.service.js.map +1 -1
- package/dist/lib/auth/services/logout.service.d.ts +14 -0
- package/dist/lib/auth/services/logout.service.d.ts.map +1 -0
- package/dist/lib/auth/services/logout.service.js +74 -0
- package/dist/lib/auth/services/logout.service.js.map +1 -0
- package/dist/lib/auth/services/mfa.service.d.ts +2 -0
- package/dist/lib/auth/services/mfa.service.d.ts.map +1 -1
- package/dist/lib/auth/services/mfa.service.js +29 -6
- package/dist/lib/auth/services/mfa.service.js.map +1 -1
- package/dist/lib/auth/services/otp-flow.service.d.ts.map +1 -1
- package/dist/lib/auth/services/otp-flow.service.js +1 -2
- package/dist/lib/auth/services/otp-flow.service.js.map +1 -1
- package/dist/lib/auth/services/password.service.d.ts +2 -1
- package/dist/lib/auth/services/password.service.d.ts.map +1 -1
- package/dist/lib/auth/services/password.service.js +19 -6
- package/dist/lib/auth/services/password.service.js.map +1 -1
- package/dist/lib/auth/services/session-token.service.d.ts +37 -0
- package/dist/lib/auth/services/session-token.service.d.ts.map +1 -0
- package/dist/lib/auth/services/session-token.service.js +151 -0
- package/dist/lib/auth/services/session-token.service.js.map +1 -0
- package/dist/lib/auth/services/verification.service.d.ts.map +1 -1
- package/dist/lib/auth/services/verification.service.js +0 -5
- package/dist/lib/auth/services/verification.service.js.map +1 -1
- package/dist/lib/auth.constants.d.ts +15 -0
- package/dist/lib/auth.constants.d.ts.map +1 -1
- package/dist/lib/auth.constants.js +11 -0
- package/dist/lib/auth.constants.js.map +1 -1
- package/dist/lib/core/entities.d.ts +5 -3
- package/dist/lib/core/entities.d.ts.map +1 -1
- package/dist/lib/core/entities.js +5 -2
- package/dist/lib/core/entities.js.map +1 -1
- package/dist/lib/core/index.d.ts +1 -0
- package/dist/lib/core/index.d.ts.map +1 -1
- package/dist/lib/core/index.js +1 -0
- package/dist/lib/core/index.js.map +1 -1
- package/dist/lib/core/interfaces/auth-module-options.interface.d.ts +28 -5
- package/dist/lib/core/interfaces/auth-module-options.interface.d.ts.map +1 -1
- package/dist/lib/core/interfaces/session-options.interface.d.ts +5 -1
- package/dist/lib/core/interfaces/session-options.interface.d.ts.map +1 -1
- package/dist/lib/core/interfaces/session-options.interface.js +1 -0
- package/dist/lib/core/interfaces/session-options.interface.js.map +1 -1
- package/dist/lib/core/interfaces/token-payload.interface.d.ts +3 -1
- package/dist/lib/core/interfaces/token-payload.interface.d.ts.map +1 -1
- package/dist/lib/core/providers/apple-auth.provider.d.ts +13 -7
- package/dist/lib/core/providers/apple-auth.provider.d.ts.map +1 -1
- package/dist/lib/core/providers/apple-auth.provider.js +166 -7
- package/dist/lib/core/providers/apple-auth.provider.js.map +1 -1
- package/dist/lib/core/providers/base-auth.provider.d.ts +2 -0
- package/dist/lib/core/providers/base-auth.provider.d.ts.map +1 -1
- package/dist/lib/core/providers/base-auth.provider.js.map +1 -1
- package/dist/lib/core/providers/email-auth.provider.d.ts.map +1 -1
- package/dist/lib/core/providers/email-auth.provider.js +13 -2
- package/dist/lib/core/providers/email-auth.provider.js.map +1 -1
- package/dist/lib/core/providers/github-auth.provider.d.ts +3 -0
- package/dist/lib/core/providers/github-auth.provider.d.ts.map +1 -1
- package/dist/lib/core/providers/github-auth.provider.js +73 -24
- package/dist/lib/core/providers/github-auth.provider.js.map +1 -1
- package/dist/lib/core/providers/google-auth.provider.d.ts +1 -0
- package/dist/lib/core/providers/google-auth.provider.d.ts.map +1 -1
- package/dist/lib/core/providers/google-auth.provider.js +7 -1
- package/dist/lib/core/providers/google-auth.provider.js.map +1 -1
- package/dist/lib/core/providers/jwt-auth.provider.d.ts +2 -1
- package/dist/lib/core/providers/jwt-auth.provider.d.ts.map +1 -1
- package/dist/lib/core/providers/passwordless-auth.provider.d.ts +3 -1
- package/dist/lib/core/providers/passwordless-auth.provider.d.ts.map +1 -1
- package/dist/lib/core/providers/passwordless-auth.provider.js +11 -1
- package/dist/lib/core/providers/passwordless-auth.provider.js.map +1 -1
- package/dist/lib/core/providers/phone-auth.provider.d.ts.map +1 -1
- package/dist/lib/core/providers/phone-auth.provider.js +13 -2
- package/dist/lib/core/providers/phone-auth.provider.js.map +1 -1
- package/dist/lib/core/services/auth-config.service.d.ts.map +1 -1
- package/dist/lib/core/services/auth-config.service.js +6 -0
- package/dist/lib/core/services/auth-config.service.js.map +1 -1
- package/dist/lib/core/services/jwt.service.d.ts.map +1 -1
- package/dist/lib/core/services/jwt.service.js +10 -5
- package/dist/lib/core/services/jwt.service.js.map +1 -1
- package/dist/lib/core/swagger/api-responses.decorator.d.ts +15 -0
- package/dist/lib/core/swagger/api-responses.decorator.d.ts.map +1 -0
- package/dist/lib/core/swagger/api-responses.decorator.js +57 -0
- package/dist/lib/core/swagger/api-responses.decorator.js.map +1 -0
- package/dist/lib/nest-auth.module.d.ts.map +1 -1
- package/dist/lib/nest-auth.module.js +18 -2
- package/dist/lib/nest-auth.module.js.map +1 -1
- package/dist/lib/permission/events/permission-created.event.d.ts +9 -0
- package/dist/lib/permission/events/permission-created.event.d.ts.map +1 -0
- package/dist/lib/permission/events/permission-created.event.js +11 -0
- package/dist/lib/permission/events/permission-created.event.js.map +1 -0
- package/dist/lib/permission/events/permission-deleted.event.d.ts +9 -0
- package/dist/lib/permission/events/permission-deleted.event.d.ts.map +1 -0
- package/dist/lib/permission/events/permission-deleted.event.js +11 -0
- package/dist/lib/permission/events/permission-deleted.event.js.map +1 -0
- package/dist/lib/permission/events/permission-updated.event.d.ts +10 -0
- package/dist/lib/permission/events/permission-updated.event.d.ts.map +1 -0
- package/dist/lib/permission/events/permission-updated.event.js +11 -0
- package/dist/lib/permission/events/permission-updated.event.js.map +1 -0
- package/dist/lib/permission/index.d.ts +3 -0
- package/dist/lib/permission/index.d.ts.map +1 -1
- package/dist/lib/permission/index.js +3 -0
- package/dist/lib/permission/index.js.map +1 -1
- package/dist/lib/permission/services/permission.service.d.ts +3 -1
- package/dist/lib/permission/services/permission.service.d.ts.map +1 -1
- package/dist/lib/permission/services/permission.service.js +16 -4
- package/dist/lib/permission/services/permission.service.js.map +1 -1
- package/dist/lib/request-context/request-context.d.ts +1 -1
- package/dist/lib/request-context/request-context.d.ts.map +1 -1
- package/dist/lib/request-context/request-context.js +3 -3
- package/dist/lib/request-context/request-context.js.map +1 -1
- package/dist/lib/role/entities/role.entity.d.ts +3 -1
- package/dist/lib/role/entities/role.entity.d.ts.map +1 -1
- package/dist/lib/role/entities/role.entity.js +7 -1
- package/dist/lib/role/entities/role.entity.js.map +1 -1
- package/dist/lib/role/events/role-created.event.d.ts +9 -0
- package/dist/lib/role/events/role-created.event.d.ts.map +1 -0
- package/dist/lib/role/events/role-created.event.js +11 -0
- package/dist/lib/role/events/role-created.event.js.map +1 -0
- package/dist/lib/role/events/role-deleted.event.d.ts +9 -0
- package/dist/lib/role/events/role-deleted.event.d.ts.map +1 -0
- package/dist/lib/role/events/role-deleted.event.js +11 -0
- package/dist/lib/role/events/role-deleted.event.js.map +1 -0
- package/dist/lib/role/events/role-updated.event.d.ts +10 -0
- package/dist/lib/role/events/role-updated.event.d.ts.map +1 -0
- package/dist/lib/role/events/role-updated.event.js +11 -0
- package/dist/lib/role/events/role-updated.event.js.map +1 -0
- package/dist/lib/role/index.d.ts +3 -0
- package/dist/lib/role/index.d.ts.map +1 -1
- package/dist/lib/role/index.js +3 -0
- package/dist/lib/role/index.js.map +1 -1
- package/dist/lib/role/services/role.service.d.ts +3 -1
- package/dist/lib/role/services/role.service.d.ts.map +1 -1
- package/dist/lib/role/services/role.service.js +29 -41
- package/dist/lib/role/services/role.service.js.map +1 -1
- package/dist/lib/role/utils/access-role-resolver.util.d.ts +20 -0
- package/dist/lib/role/utils/access-role-resolver.util.d.ts.map +1 -0
- package/dist/lib/role/utils/access-role-resolver.util.js +63 -0
- package/dist/lib/role/utils/access-role-resolver.util.js.map +1 -0
- package/dist/lib/session/services/session-manager.service.d.ts +8 -3
- package/dist/lib/session/services/session-manager.service.d.ts.map +1 -1
- package/dist/lib/session/services/session-manager.service.js +30 -11
- package/dist/lib/session/services/session-manager.service.js.map +1 -1
- package/dist/lib/session/session.module.d.ts.map +1 -1
- package/dist/lib/session/session.module.js +5 -1
- package/dist/lib/session/session.module.js.map +1 -1
- package/dist/lib/tenant/decorators/current-tenant.decorator.d.ts.map +1 -1
- package/dist/lib/tenant/decorators/current-tenant.decorator.js.map +1 -1
- package/dist/lib/tenant/entities/tenant.entity.d.ts +1 -1
- package/dist/lib/tenant/entities/tenant.entity.d.ts.map +1 -1
- package/dist/lib/tenant/entities/tenant.entity.js +1 -1
- package/dist/lib/tenant/entities/tenant.entity.js.map +1 -1
- package/dist/lib/tenant/index.d.ts +1 -1
- package/dist/lib/tenant/index.d.ts.map +1 -1
- package/dist/lib/tenant/index.js +1 -1
- package/dist/lib/tenant/index.js.map +1 -1
- package/dist/lib/tenant/tenant-context/services/base-tenant-context.service.d.ts +1 -1
- package/dist/lib/tenant/tenant-context/services/base-tenant-context.service.d.ts.map +1 -1
- package/dist/lib/tenant/tenant-context/services/disabled-tenant-context.service.d.ts +1 -1
- package/dist/lib/tenant/tenant-context/services/disabled-tenant-context.service.d.ts.map +1 -1
- package/dist/lib/tenant/tenant-context/tenant-context.interface.d.ts +1 -1
- package/dist/lib/tenant/tenant-context/tenant-context.interface.d.ts.map +1 -1
- package/dist/lib/user/entities/platform-access.entity.d.ts +16 -0
- package/dist/lib/user/entities/platform-access.entity.d.ts.map +1 -0
- package/dist/lib/user/entities/platform-access.entity.js +95 -0
- package/dist/lib/user/entities/platform-access.entity.js.map +1 -0
- package/dist/lib/user/entities/user-access.entity.d.ts +22 -0
- package/dist/lib/user/entities/user-access.entity.d.ts.map +1 -0
- package/dist/lib/{tenant → user}/entities/user-access.entity.js +35 -4
- package/dist/lib/user/entities/user-access.entity.js.map +1 -0
- package/dist/lib/user/entities/user.entity.d.ts +10 -12
- package/dist/lib/user/entities/user.entity.d.ts.map +1 -1
- package/dist/lib/user/entities/user.entity.js +91 -73
- package/dist/lib/user/entities/user.entity.js.map +1 -1
- package/dist/lib/user/services/access-key.service.d.ts +1 -0
- package/dist/lib/user/services/access-key.service.d.ts.map +1 -1
- package/dist/lib/user/services/access-key.service.js +19 -3
- package/dist/lib/user/services/access-key.service.js.map +1 -1
- package/dist/lib/user/services/user.service.d.ts +27 -22
- package/dist/lib/user/services/user.service.d.ts.map +1 -1
- package/dist/lib/user/services/user.service.js +135 -84
- package/dist/lib/user/services/user.service.js.map +1 -1
- package/dist/lib/user/user.module.d.ts.map +1 -1
- package/dist/lib/user/user.module.js +3 -2
- package/dist/lib/user/user.module.js.map +1 -1
- package/package.json +14 -9
- package/dist/lib/tenant/entities/user-access.entity.d.ts +0 -19
- package/dist/lib/tenant/entities/user-access.entity.d.ts.map +0 -1
- 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,
|
|
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 '
|
|
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,
|
|
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 '
|
|
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,
|
|
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("
|
|
15
|
-
const user_entity_1 = require("
|
|
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
|
-
|
|
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":"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"}
|
|
@@ -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 {
|
|
7
|
-
import {
|
|
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
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
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,
|
|
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
|
|
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
|
|
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
|
|
52
|
-
const
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
.
|
|
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 (
|
|
65
|
-
return
|
|
56
|
+
if (existingUserAccess) {
|
|
57
|
+
return existingUserAccess;
|
|
66
58
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
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
|
|
78
|
-
const
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
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 (
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
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
|
|
81
|
+
return null;
|
|
90
82
|
}
|
|
91
|
-
async findOrCreateIdentity(provider, providerId) {
|
|
92
|
-
const
|
|
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 =
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
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
|
|
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
|
|
109
|
+
return repo.save(existingIdentity);
|
|
111
110
|
}
|
|
112
|
-
const newIdentity =
|
|
111
|
+
const newIdentity = repo.create({
|
|
113
112
|
provider,
|
|
114
113
|
userId: this.id,
|
|
115
114
|
...data,
|
|
116
115
|
});
|
|
117
|
-
return
|
|
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
|
|
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
|
|
139
|
+
await identityRepo.remove(identity);
|
|
135
140
|
}
|
|
136
141
|
}
|
|
137
|
-
await
|
|
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
|
|
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
|
|
165
|
+
await identityRepo.remove(identity);
|
|
155
166
|
}
|
|
156
167
|
}
|
|
157
|
-
await
|
|
168
|
+
await userRepo.save(this);
|
|
158
169
|
}
|
|
159
170
|
async validatePassword(password) {
|
|
160
|
-
|
|
161
|
-
|
|
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,
|
|
187
|
+
return await options.password.verify(password, passwordHash);
|
|
170
188
|
}
|
|
171
189
|
try {
|
|
172
|
-
return await (0, argon2_1.verify)(
|
|
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
|