@ackplus/nest-auth 0.0.38 → 0.0.40
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 +226 -0
- package/package.json +2 -2
- package/src/index.js +12 -0
- package/src/index.js.map +1 -0
- package/src/lib/auth/auth.module.js +52 -0
- package/src/lib/auth/auth.module.js.map +1 -0
- package/src/lib/auth/controllers/auth.controller.js +189 -0
- package/src/lib/auth/controllers/auth.controller.js.map +1 -0
- package/src/lib/auth/controllers/mfa.controller.js +130 -0
- package/src/lib/auth/controllers/mfa.controller.js.map +1 -0
- package/src/lib/auth/dto/index.js +1 -0
- package/src/lib/auth/dto/index.js.map +1 -0
- package/src/lib/auth/dto/requests/forgot-password.request.dto.js +30 -0
- package/src/lib/auth/dto/requests/forgot-password.request.dto.js.map +1 -0
- package/src/lib/auth/dto/requests/login.request.dto.js +34 -0
- package/src/lib/auth/dto/requests/login.request.dto.js.map +1 -0
- package/src/lib/auth/dto/requests/refresh-token.request.dto.js +15 -0
- package/src/lib/auth/dto/requests/refresh-token.request.dto.js.map +1 -0
- package/src/lib/auth/dto/requests/reset-password.request.dto.js +42 -0
- package/src/lib/auth/dto/requests/reset-password.request.dto.js.map +1 -0
- package/src/lib/auth/dto/requests/send-mfa-code.request.dto.js +16 -0
- package/src/lib/auth/dto/requests/send-mfa-code.request.dto.js.map +1 -0
- package/src/lib/auth/dto/requests/signup.request.dto.js +37 -0
- package/src/lib/auth/dto/requests/signup.request.dto.js.map +1 -0
- package/src/lib/auth/dto/requests/social-login.request.dto.js +16 -0
- package/src/lib/auth/dto/requests/social-login.request.dto.js.map +1 -0
- package/src/lib/auth/dto/requests/verify-2fa.request.dto.js +21 -0
- package/src/lib/auth/dto/requests/verify-2fa.request.dto.js.map +1 -0
- package/src/lib/auth/dto/requests/verify-totp-setup.request.dto.js +20 -0
- package/src/lib/auth/dto/requests/verify-totp-setup.request.dto.js.map +1 -0
- package/src/lib/auth/dto/responses/auth.response.dto.js +50 -0
- package/src/lib/auth/dto/responses/auth.response.dto.js.map +1 -0
- package/src/lib/auth/entities/mfa-secret.entity.js +50 -0
- package/src/lib/auth/entities/mfa-secret.entity.js.map +1 -0
- package/src/lib/auth/entities/otp.entity.js +50 -0
- package/src/lib/auth/entities/otp.entity.js.map +1 -0
- package/src/lib/auth/events/logged-out-all.event.js +10 -0
- package/src/lib/auth/events/logged-out-all.event.js.map +1 -0
- package/src/lib/auth/events/logged-out.event.js +10 -0
- package/src/lib/auth/events/logged-out.event.js.map +1 -0
- package/src/lib/auth/events/password-reset-requested.event.js +10 -0
- package/src/lib/auth/events/password-reset-requested.event.js.map +1 -0
- package/src/lib/auth/events/password-reset.event.js +10 -0
- package/src/lib/auth/events/password-reset.event.js.map +1 -0
- package/src/lib/auth/events/user-2fa-verified.event.js +10 -0
- package/src/lib/auth/events/user-2fa-verified.event.js.map +1 -0
- package/src/lib/auth/events/user-logged-in.event.js +10 -0
- package/src/lib/auth/events/user-logged-in.event.js.map +1 -0
- package/src/lib/auth/events/user-refresh-token.event.js +10 -0
- package/src/lib/auth/events/user-refresh-token.event.js.map +1 -0
- package/src/lib/auth/index.js +20 -0
- package/src/lib/auth/index.js.map +1 -0
- package/src/lib/auth/services/auth.service.js +396 -0
- package/src/lib/auth/services/auth.service.js.map +1 -0
- package/src/lib/auth/services/cookie.service.js +43 -0
- package/src/lib/auth/services/cookie.service.js.map +1 -0
- package/src/lib/auth/services/mfa.service.js +255 -0
- package/src/lib/auth/services/mfa.service.js.map +1 -0
- package/src/lib/auth.constants.js +43 -0
- package/src/lib/auth.constants.js.map +1 -0
- package/src/lib/core/core.module.js +67 -0
- package/src/lib/core/core.module.js.map +1 -0
- package/src/lib/core/decorators/role.decorator.js +14 -0
- package/src/lib/core/decorators/role.decorator.js.map +1 -0
- package/src/lib/core/decorators/skip-mfa.decorator.js +8 -0
- package/src/lib/core/decorators/skip-mfa.decorator.js.map +1 -0
- package/src/lib/core/dto/message.response.dto.js +13 -0
- package/src/lib/core/dto/message.response.dto.js.map +1 -0
- package/src/lib/core/entities.d.ts +1 -1
- package/src/lib/core/entities.js +34 -0
- package/src/lib/core/entities.js.map +1 -0
- package/src/lib/core/guards/auth.guard.js +135 -0
- package/src/lib/core/guards/auth.guard.js.map +1 -0
- package/src/lib/core/guards/role.guard.js +40 -0
- package/src/lib/core/guards/role.guard.js.map +1 -0
- package/src/lib/core/index.js +27 -0
- package/src/lib/core/index.js.map +1 -0
- package/src/lib/core/interfaces/auth-module-options.interface.js +3 -0
- package/src/lib/core/interfaces/auth-module-options.interface.js.map +1 -0
- package/src/lib/core/interfaces/mfa-options.interface.js +10 -0
- package/src/lib/core/interfaces/mfa-options.interface.js.map +1 -0
- package/src/lib/core/interfaces/otp.interface.js +10 -0
- package/src/lib/core/interfaces/otp.interface.js.map +1 -0
- package/src/lib/core/interfaces/session-options.interface.js +9 -0
- package/src/lib/core/interfaces/session-options.interface.js.map +1 -0
- package/src/lib/core/interfaces/token-payload.interface.js +3 -0
- package/src/lib/core/interfaces/token-payload.interface.js.map +1 -0
- package/src/lib/core/providers/apple-auth.provider.js +58 -0
- package/src/lib/core/providers/apple-auth.provider.js.map +1 -0
- package/src/lib/core/providers/base-auth.provider.js +41 -0
- package/src/lib/core/providers/base-auth.provider.js.map +1 -0
- package/src/lib/core/providers/email-auth.provider.js +42 -0
- package/src/lib/core/providers/email-auth.provider.js.map +1 -0
- package/src/lib/core/providers/facebook-auth.provider.js +58 -0
- package/src/lib/core/providers/facebook-auth.provider.js.map +1 -0
- package/src/lib/core/providers/google-auth.provider.js +60 -0
- package/src/lib/core/providers/google-auth.provider.js.map +1 -0
- package/src/lib/core/providers/jwt-auth.provider.js +51 -0
- package/src/lib/core/providers/jwt-auth.provider.js.map +1 -0
- package/src/lib/core/providers/phone-auth.provider.js +45 -0
- package/src/lib/core/providers/phone-auth.provider.js.map +1 -0
- package/src/lib/core/services/auth-provider-registry.service.js +72 -0
- package/src/lib/core/services/auth-provider-registry.service.js.map +1 -0
- package/src/lib/core/services/jwt.service.js +93 -0
- package/src/lib/core/services/jwt.service.js.map +1 -0
- package/src/lib/nest-auth.module.js +118 -0
- package/src/lib/nest-auth.module.js.map +1 -0
- package/src/lib/request-context/request-context.js +108 -0
- package/src/lib/request-context/request-context.js.map +1 -0
- package/src/lib/request-context/request-context.middleware.js +16 -0
- package/src/lib/request-context/request-context.middleware.js.map +1 -0
- package/src/lib/role/entities/permission.entity.js +42 -0
- package/src/lib/role/entities/permission.entity.js.map +1 -0
- package/src/lib/role/entities/role.entity.js +106 -0
- package/src/lib/role/entities/role.entity.js.map +1 -0
- package/src/lib/role/index.js +6 -0
- package/src/lib/role/index.js.map +1 -0
- package/src/lib/role/role.module.js +22 -0
- package/src/lib/role/role.module.js.map +1 -0
- package/src/lib/role/services/role.service.js +220 -0
- package/src/lib/role/services/role.service.js.map +1 -0
- package/src/lib/session/entities/session.entity.js +63 -0
- package/src/lib/session/entities/session.entity.js.map +1 -0
- package/src/lib/session/index.js +8 -0
- package/src/lib/session/index.js.map +1 -0
- package/src/lib/session/services/base-session.service.js +66 -0
- package/src/lib/session/services/base-session.service.js.map +1 -0
- package/src/lib/session/services/database-session.service.js +55 -0
- package/src/lib/session/services/database-session.service.js.map +1 -0
- package/src/lib/session/services/redis-session.service.js +120 -0
- package/src/lib/session/services/redis-session.service.js.map +1 -0
- package/src/lib/session/session.module.js +33 -0
- package/src/lib/session/session.module.js.map +1 -0
- package/src/lib/tenant/entities/tenant.entity.js +44 -0
- package/src/lib/tenant/entities/tenant.entity.js.map +1 -0
- package/src/lib/tenant/events/tenant-created.event.js +10 -0
- package/src/lib/tenant/events/tenant-created.event.js.map +1 -0
- package/src/lib/tenant/events/tenant-deleted.event.js +10 -0
- package/src/lib/tenant/events/tenant-deleted.event.js.map +1 -0
- package/src/lib/tenant/events/tenant-updated.event.js +10 -0
- package/src/lib/tenant/events/tenant-updated.event.js.map +1 -0
- package/src/lib/tenant/index.js +7 -0
- package/src/lib/tenant/index.js.map +1 -0
- package/src/lib/tenant/services/tenant.service.js +136 -0
- package/src/lib/tenant/services/tenant.service.js.map +1 -0
- package/src/lib/tenant/tenant.module.js +27 -0
- package/src/lib/tenant/tenant.module.js.map +1 -0
- package/src/lib/user/dto/requests/update-user.dto.js +24 -0
- package/src/lib/user/dto/requests/update-user.dto.js.map +1 -0
- package/src/lib/user/entities/access-key.entity.js +63 -0
- package/src/lib/user/entities/access-key.entity.js.map +1 -0
- package/src/lib/user/entities/auth-identity.entity.js +47 -0
- package/src/lib/user/entities/auth-identity.entity.js.map +1 -0
- package/src/lib/user/entities/user.entity.js +189 -0
- package/src/lib/user/entities/user.entity.js.map +1 -0
- package/src/lib/user/events/user-created.event.js +10 -0
- package/src/lib/user/events/user-created.event.js.map +1 -0
- package/src/lib/user/events/user-deleted.event.js +10 -0
- package/src/lib/user/events/user-deleted.event.js.map +1 -0
- package/src/lib/user/events/user-registered.event.js +10 -0
- package/src/lib/user/events/user-registered.event.js.map +1 -0
- package/src/lib/user/events/user-updated.event.js +10 -0
- package/src/lib/user/events/user-updated.event.js.map +1 -0
- package/src/lib/user/index.js +8 -0
- package/src/lib/user/index.js.map +1 -0
- package/src/lib/user/services/access-key.service.js +119 -0
- package/src/lib/user/services/access-key.service.js.map +1 -0
- package/src/lib/user/services/user.service.js +217 -0
- package/src/lib/user/services/user.service.js.map +1 -0
- package/src/lib/user/user.module.js +32 -0
- package/src/lib/user/user.module.js.map +1 -0
- package/src/lib/utils/database.utils.js +8 -0
- package/src/lib/utils/database.utils.js.map +1 -0
- package/src/lib/utils/otp.js +7 -0
- package/src/lib/utils/otp.js.map +1 -0
- package/tsconfig.tsbuildinfo +1 -0
- package/index.cjs.d.ts +0 -1
- package/index.cjs.js +0 -105236
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Tenant = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const typeorm_1 = require("typeorm");
|
|
6
|
+
let Tenant = class Tenant {
|
|
7
|
+
};
|
|
8
|
+
exports.Tenant = Tenant;
|
|
9
|
+
tslib_1.__decorate([
|
|
10
|
+
(0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
|
|
11
|
+
tslib_1.__metadata("design:type", String)
|
|
12
|
+
], Tenant.prototype, "id", void 0);
|
|
13
|
+
tslib_1.__decorate([
|
|
14
|
+
(0, typeorm_1.Column)(),
|
|
15
|
+
tslib_1.__metadata("design:type", String)
|
|
16
|
+
], Tenant.prototype, "name", void 0);
|
|
17
|
+
tslib_1.__decorate([
|
|
18
|
+
(0, typeorm_1.Column)({ unique: true, nullable: true }),
|
|
19
|
+
tslib_1.__metadata("design:type", String)
|
|
20
|
+
], Tenant.prototype, "domain", void 0);
|
|
21
|
+
tslib_1.__decorate([
|
|
22
|
+
(0, typeorm_1.Column)({ nullable: true }),
|
|
23
|
+
tslib_1.__metadata("design:type", String)
|
|
24
|
+
], Tenant.prototype, "description", void 0);
|
|
25
|
+
tslib_1.__decorate([
|
|
26
|
+
(0, typeorm_1.Column)({ type: 'simple-json', nullable: true, default: '{}' }),
|
|
27
|
+
tslib_1.__metadata("design:type", Object)
|
|
28
|
+
], Tenant.prototype, "metadata", void 0);
|
|
29
|
+
tslib_1.__decorate([
|
|
30
|
+
(0, typeorm_1.Column)({ default: true }),
|
|
31
|
+
tslib_1.__metadata("design:type", Boolean)
|
|
32
|
+
], Tenant.prototype, "isActive", void 0);
|
|
33
|
+
tslib_1.__decorate([
|
|
34
|
+
(0, typeorm_1.CreateDateColumn)(),
|
|
35
|
+
tslib_1.__metadata("design:type", Date)
|
|
36
|
+
], Tenant.prototype, "createdAt", void 0);
|
|
37
|
+
tslib_1.__decorate([
|
|
38
|
+
(0, typeorm_1.UpdateDateColumn)(),
|
|
39
|
+
tslib_1.__metadata("design:type", Date)
|
|
40
|
+
], Tenant.prototype, "updatedAt", void 0);
|
|
41
|
+
exports.Tenant = Tenant = tslib_1.__decorate([
|
|
42
|
+
(0, typeorm_1.Entity)('nest_auth_tenants')
|
|
43
|
+
], Tenant);
|
|
44
|
+
//# sourceMappingURL=tenant.entity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tenant.entity.js","sourceRoot":"","sources":["../../../../../../../packages/nest-auth/src/lib/tenant/entities/tenant.entity.ts"],"names":[],"mappings":";;;;AAAA,qCAAqG;AAG9F,IAAM,MAAM,GAAZ,MAAM,MAAM;CAwBlB,CAAA;AAxBY,wBAAM;AAEf;IADC,IAAA,gCAAsB,EAAC,MAAM,CAAC;;kCACpB;AAGX;IADC,IAAA,gBAAM,GAAE;;oCACI;AAGb;IADC,IAAA,gBAAM,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sCAC1B;AAGf;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2CACP;AAGpB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;wCACjC;AAG9B;IADC,IAAA,gBAAM,EAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;wCACR;AAGlB;IADC,IAAA,0BAAgB,GAAE;sCACR,IAAI;yCAAC;AAGhB;IADC,IAAA,0BAAgB,GAAE;sCACR,IAAI;yCAAC;iBAvBP,MAAM;IADlB,IAAA,gBAAM,EAAC,mBAAmB,CAAC;GACf,MAAM,CAwBlB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TenantCreatedEvent = void 0;
|
|
4
|
+
class TenantCreatedEvent {
|
|
5
|
+
constructor(payload) {
|
|
6
|
+
this.payload = payload;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
exports.TenantCreatedEvent = TenantCreatedEvent;
|
|
10
|
+
//# sourceMappingURL=tenant-created.event.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tenant-created.event.js","sourceRoot":"","sources":["../../../../../../../packages/nest-auth/src/lib/tenant/events/tenant-created.event.ts"],"names":[],"mappings":";;;AAMA,MAAa,kBAAkB;IAC3B,YAA4B,OAAkC;QAAlC,YAAO,GAAP,OAAO,CAA2B;IAAI,CAAC;CACtE;AAFD,gDAEC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TenantDeletedEvent = void 0;
|
|
4
|
+
class TenantDeletedEvent {
|
|
5
|
+
constructor(payload) {
|
|
6
|
+
this.payload = payload;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
exports.TenantDeletedEvent = TenantDeletedEvent;
|
|
10
|
+
//# sourceMappingURL=tenant-deleted.event.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tenant-deleted.event.js","sourceRoot":"","sources":["../../../../../../../packages/nest-auth/src/lib/tenant/events/tenant-deleted.event.ts"],"names":[],"mappings":";;;AAMA,MAAa,kBAAkB;IAC3B,YACoB,OAAkC;QAAlC,YAAO,GAAP,OAAO,CAA2B;IAClD,CAAC;CACR;AAJD,gDAIC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TenantUpdatedEvent = void 0;
|
|
4
|
+
class TenantUpdatedEvent {
|
|
5
|
+
constructor(payload) {
|
|
6
|
+
this.payload = payload;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
exports.TenantUpdatedEvent = TenantUpdatedEvent;
|
|
10
|
+
//# sourceMappingURL=tenant-updated.event.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tenant-updated.event.js","sourceRoot":"","sources":["../../../../../../../packages/nest-auth/src/lib/tenant/events/tenant-updated.event.ts"],"names":[],"mappings":";;;AAOA,MAAa,kBAAkB;IAC3B,YACoB,OAAkC;QAAlC,YAAO,GAAP,OAAO,CAA2B;IAClD,CAAC;CACR;AAJD,gDAIC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./entities/tenant.entity"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./services/tenant.service"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./tenant.module"), exports);
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/nest-auth/src/lib/tenant/index.ts"],"names":[],"mappings":";;;AACA,mEAAyC;AAGzC,oEAA0C;AAG1C,0DAAgC"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TenantService = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const common_1 = require("@nestjs/common");
|
|
6
|
+
const typeorm_1 = require("@nestjs/typeorm");
|
|
7
|
+
const typeorm_2 = require("typeorm");
|
|
8
|
+
const tenant_entity_1 = require("../entities/tenant.entity");
|
|
9
|
+
const event_emitter_1 = require("@nestjs/event-emitter");
|
|
10
|
+
const tenant_created_event_1 = require("../events/tenant-created.event");
|
|
11
|
+
const tenant_updated_event_1 = require("../events/tenant-updated.event");
|
|
12
|
+
const tenant_deleted_event_1 = require("../events/tenant-deleted.event");
|
|
13
|
+
const auth_constants_1 = require("../../auth.constants");
|
|
14
|
+
let TenantService = class TenantService {
|
|
15
|
+
constructor(tenantRepository, eventEmitter) {
|
|
16
|
+
this.tenantRepository = tenantRepository;
|
|
17
|
+
this.eventEmitter = eventEmitter;
|
|
18
|
+
}
|
|
19
|
+
async createTenant(data) {
|
|
20
|
+
const { domain } = data;
|
|
21
|
+
const existingTenant = await this.tenantRepository.findOne({
|
|
22
|
+
where: { domain }
|
|
23
|
+
});
|
|
24
|
+
if (existingTenant) {
|
|
25
|
+
throw new common_1.ConflictException({
|
|
26
|
+
message: `Tenant with domain '${domain}' already exists`,
|
|
27
|
+
code: 'TENANT_ALREADY_EXISTS'
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
const tenant = this.tenantRepository.create(data);
|
|
31
|
+
await this.tenantRepository.save(tenant);
|
|
32
|
+
await this.eventEmitter.emitAsync(auth_constants_1.NestAuthEvents.TENANT_CREATED, new tenant_created_event_1.TenantCreatedEvent({
|
|
33
|
+
tenant
|
|
34
|
+
}));
|
|
35
|
+
return tenant;
|
|
36
|
+
}
|
|
37
|
+
async getTenantById(id, options) {
|
|
38
|
+
if (!id) {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
const tenant = await this.tenantRepository.findOne({
|
|
42
|
+
...(options ? options : {}),
|
|
43
|
+
where: { id }
|
|
44
|
+
});
|
|
45
|
+
if (!tenant) {
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
return tenant;
|
|
49
|
+
}
|
|
50
|
+
async getTenantByDomain(domain, options) {
|
|
51
|
+
if (!domain) {
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
const tenant = await this.tenantRepository.findOne({
|
|
55
|
+
...(options ? options : {}),
|
|
56
|
+
where: { domain }
|
|
57
|
+
});
|
|
58
|
+
return tenant;
|
|
59
|
+
}
|
|
60
|
+
async getTenants(options) {
|
|
61
|
+
return this.tenantRepository.find(options);
|
|
62
|
+
}
|
|
63
|
+
async updateTenant(id, data) {
|
|
64
|
+
const tenant = await this.getTenantById(id);
|
|
65
|
+
if (!tenant) {
|
|
66
|
+
throw new common_1.NotFoundException({
|
|
67
|
+
message: `Tenant with ID ${id} not found`,
|
|
68
|
+
code: 'TENANT_NOT_FOUND'
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
if (data.domain && data.domain !== tenant.domain) {
|
|
72
|
+
const existingTenant = await this.getTenantByDomain(data.domain);
|
|
73
|
+
if (existingTenant && existingTenant.id !== tenant.id) {
|
|
74
|
+
throw new common_1.ConflictException({
|
|
75
|
+
message: `Tenant with domain '${data.domain}' already exists`,
|
|
76
|
+
code: 'TENANT_ALREADY_EXISTS'
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
Object.assign(tenant, data);
|
|
81
|
+
const updatedTenant = await this.tenantRepository.save(tenant);
|
|
82
|
+
await this.eventEmitter.emitAsync(auth_constants_1.NestAuthEvents.TENANT_UPDATED, new tenant_updated_event_1.TenantUpdatedEvent({
|
|
83
|
+
tenant: updatedTenant,
|
|
84
|
+
updatedFields: Object.keys(data)
|
|
85
|
+
}));
|
|
86
|
+
return updatedTenant;
|
|
87
|
+
}
|
|
88
|
+
async deleteTenant(id) {
|
|
89
|
+
const tenant = await this.getTenantById(id);
|
|
90
|
+
if (!tenant) {
|
|
91
|
+
throw new common_1.NotFoundException({
|
|
92
|
+
message: `Tenant with ID ${id} not found`,
|
|
93
|
+
code: 'TENANT_NOT_FOUND'
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
await this.eventEmitter.emitAsync(auth_constants_1.NestAuthEvents.TENANT_DELETED, new tenant_deleted_event_1.TenantDeletedEvent({
|
|
97
|
+
tenant
|
|
98
|
+
}));
|
|
99
|
+
await this.tenantRepository.remove(tenant);
|
|
100
|
+
}
|
|
101
|
+
async updateTenantStatus(id, isActive) {
|
|
102
|
+
const tenant = await this.getTenantById(id);
|
|
103
|
+
if (!tenant) {
|
|
104
|
+
throw new common_1.NotFoundException({
|
|
105
|
+
message: `Tenant with ID ${id} not found`,
|
|
106
|
+
code: 'TENANT_NOT_FOUND'
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
tenant.isActive = isActive;
|
|
110
|
+
const updatedTenant = await this.tenantRepository.save(tenant);
|
|
111
|
+
return updatedTenant;
|
|
112
|
+
}
|
|
113
|
+
async updateTenantMetadata(id, metadata) {
|
|
114
|
+
const tenant = await this.getTenantById(id);
|
|
115
|
+
if (!tenant) {
|
|
116
|
+
throw new common_1.NotFoundException({
|
|
117
|
+
message: `Tenant with ID ${id} not found`,
|
|
118
|
+
code: 'TENANT_NOT_FOUND'
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
tenant.metadata = {
|
|
122
|
+
...tenant.metadata,
|
|
123
|
+
...metadata
|
|
124
|
+
};
|
|
125
|
+
const updatedTenant = await this.tenantRepository.save(tenant);
|
|
126
|
+
return updatedTenant;
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
exports.TenantService = TenantService;
|
|
130
|
+
exports.TenantService = TenantService = tslib_1.__decorate([
|
|
131
|
+
(0, common_1.Injectable)(),
|
|
132
|
+
tslib_1.__param(0, (0, typeorm_1.InjectRepository)(tenant_entity_1.Tenant)),
|
|
133
|
+
tslib_1.__metadata("design:paramtypes", [typeorm_2.Repository,
|
|
134
|
+
event_emitter_1.EventEmitter2])
|
|
135
|
+
], TenantService);
|
|
136
|
+
//# sourceMappingURL=tenant.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tenant.service.js","sourceRoot":"","sources":["../../../../../../../packages/nest-auth/src/lib/tenant/services/tenant.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TenantModule = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const common_1 = require("@nestjs/common");
|
|
6
|
+
const typeorm_1 = require("@nestjs/typeorm");
|
|
7
|
+
const tenant_service_1 = require("./services/tenant.service");
|
|
8
|
+
const tenant_entity_1 = require("./entities/tenant.entity");
|
|
9
|
+
const event_emitter_1 = require("@nestjs/event-emitter");
|
|
10
|
+
let TenantModule = class TenantModule {
|
|
11
|
+
};
|
|
12
|
+
exports.TenantModule = TenantModule;
|
|
13
|
+
exports.TenantModule = TenantModule = tslib_1.__decorate([
|
|
14
|
+
(0, common_1.Module)({
|
|
15
|
+
imports: [
|
|
16
|
+
event_emitter_1.EventEmitterModule,
|
|
17
|
+
typeorm_1.TypeOrmModule.forFeature([tenant_entity_1.Tenant]),
|
|
18
|
+
],
|
|
19
|
+
providers: [
|
|
20
|
+
tenant_service_1.TenantService,
|
|
21
|
+
],
|
|
22
|
+
exports: [
|
|
23
|
+
tenant_service_1.TenantService,
|
|
24
|
+
],
|
|
25
|
+
})
|
|
26
|
+
], TenantModule);
|
|
27
|
+
//# sourceMappingURL=tenant.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tenant.module.js","sourceRoot":"","sources":["../../../../../../packages/nest-auth/src/lib/tenant/tenant.module.ts"],"names":[],"mappings":";;;;AAAA,2CAAwC;AACxC,6CAAgD;AAChD,8DAA0D;AAC1D,4DAAkD;AAClD,yDAA2D;AAcpD,IAAM,YAAY,GAAlB,MAAM,YAAY;CAAI,CAAA;AAAhB,oCAAY;uBAAZ,YAAY;IAZxB,IAAA,eAAM,EAAC;QACJ,OAAO,EAAE;YACL,kCAAkB;YAClB,uBAAa,CAAC,UAAU,CAAC,CAAC,sBAAM,CAAC,CAAC;SACrC;QACD,SAAS,EAAE;YACP,8BAAa;SAChB;QACD,OAAO,EAAE;YACL,8BAAa;SAChB;KACJ,CAAC;GACW,YAAY,CAAI"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UpdateUserDto = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const class_validator_1 = require("class-validator");
|
|
6
|
+
class UpdateUserDto {
|
|
7
|
+
}
|
|
8
|
+
exports.UpdateUserDto = UpdateUserDto;
|
|
9
|
+
tslib_1.__decorate([
|
|
10
|
+
(0, class_validator_1.IsString)(),
|
|
11
|
+
(0, class_validator_1.IsOptional)(),
|
|
12
|
+
tslib_1.__metadata("design:type", String)
|
|
13
|
+
], UpdateUserDto.prototype, "firstName", void 0);
|
|
14
|
+
tslib_1.__decorate([
|
|
15
|
+
(0, class_validator_1.IsString)(),
|
|
16
|
+
(0, class_validator_1.IsOptional)(),
|
|
17
|
+
tslib_1.__metadata("design:type", String)
|
|
18
|
+
], UpdateUserDto.prototype, "lastName", void 0);
|
|
19
|
+
tslib_1.__decorate([
|
|
20
|
+
(0, class_validator_1.IsString)(),
|
|
21
|
+
(0, class_validator_1.IsOptional)(),
|
|
22
|
+
tslib_1.__metadata("design:type", String)
|
|
23
|
+
], UpdateUserDto.prototype, "displayName", void 0);
|
|
24
|
+
//# sourceMappingURL=update-user.dto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-user.dto.js","sourceRoot":"","sources":["../../../../../../../../packages/nest-auth/src/lib/user/dto/requests/update-user.dto.ts"],"names":[],"mappings":";;;;AAAA,qDAAuD;AAEvD,MAAa,aAAa;CAYzB;AAZD,sCAYC;AATG;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;gDACM;AAInB;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;+CACK;AAIlB;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;kDACQ"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AccessKey = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const typeorm_1 = require("typeorm");
|
|
6
|
+
const user_entity_1 = require("./user.entity");
|
|
7
|
+
let AccessKey = class AccessKey extends typeorm_1.BaseEntity {
|
|
8
|
+
};
|
|
9
|
+
exports.AccessKey = AccessKey;
|
|
10
|
+
tslib_1.__decorate([
|
|
11
|
+
(0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
|
|
12
|
+
tslib_1.__metadata("design:type", String)
|
|
13
|
+
], AccessKey.prototype, "id", void 0);
|
|
14
|
+
tslib_1.__decorate([
|
|
15
|
+
(0, typeorm_1.Column)(),
|
|
16
|
+
tslib_1.__metadata("design:type", String)
|
|
17
|
+
], AccessKey.prototype, "name", void 0);
|
|
18
|
+
tslib_1.__decorate([
|
|
19
|
+
(0, typeorm_1.Column)({ unique: true }),
|
|
20
|
+
tslib_1.__metadata("design:type", String)
|
|
21
|
+
], AccessKey.prototype, "publicKey", void 0);
|
|
22
|
+
tslib_1.__decorate([
|
|
23
|
+
(0, typeorm_1.Column)(),
|
|
24
|
+
tslib_1.__metadata("design:type", String)
|
|
25
|
+
], AccessKey.prototype, "privateKey", void 0);
|
|
26
|
+
tslib_1.__decorate([
|
|
27
|
+
(0, typeorm_1.Column)({ nullable: true }),
|
|
28
|
+
tslib_1.__metadata("design:type", String)
|
|
29
|
+
], AccessKey.prototype, "description", void 0);
|
|
30
|
+
tslib_1.__decorate([
|
|
31
|
+
(0, typeorm_1.Column)({ default: true }),
|
|
32
|
+
tslib_1.__metadata("design:type", Boolean)
|
|
33
|
+
], AccessKey.prototype, "isActive", void 0);
|
|
34
|
+
tslib_1.__decorate([
|
|
35
|
+
(0, typeorm_1.Column)({ nullable: true }),
|
|
36
|
+
tslib_1.__metadata("design:type", Date)
|
|
37
|
+
], AccessKey.prototype, "expiresAt", void 0);
|
|
38
|
+
tslib_1.__decorate([
|
|
39
|
+
(0, typeorm_1.Column)({ nullable: true }),
|
|
40
|
+
tslib_1.__metadata("design:type", Date)
|
|
41
|
+
], AccessKey.prototype, "lastUsedAt", void 0);
|
|
42
|
+
tslib_1.__decorate([
|
|
43
|
+
(0, typeorm_1.Column)(),
|
|
44
|
+
(0, typeorm_1.RelationId)((accessKey) => accessKey.user),
|
|
45
|
+
tslib_1.__metadata("design:type", String)
|
|
46
|
+
], AccessKey.prototype, "userId", void 0);
|
|
47
|
+
tslib_1.__decorate([
|
|
48
|
+
(0, typeorm_1.ManyToOne)(() => user_entity_1.User),
|
|
49
|
+
(0, typeorm_1.JoinColumn)({ name: 'userId' }),
|
|
50
|
+
tslib_1.__metadata("design:type", user_entity_1.User)
|
|
51
|
+
], AccessKey.prototype, "user", void 0);
|
|
52
|
+
tslib_1.__decorate([
|
|
53
|
+
(0, typeorm_1.CreateDateColumn)(),
|
|
54
|
+
tslib_1.__metadata("design:type", Date)
|
|
55
|
+
], AccessKey.prototype, "createdAt", void 0);
|
|
56
|
+
tslib_1.__decorate([
|
|
57
|
+
(0, typeorm_1.UpdateDateColumn)(),
|
|
58
|
+
tslib_1.__metadata("design:type", Date)
|
|
59
|
+
], AccessKey.prototype, "updatedAt", void 0);
|
|
60
|
+
exports.AccessKey = AccessKey = tslib_1.__decorate([
|
|
61
|
+
(0, typeorm_1.Entity)('nest_auth_access_keys')
|
|
62
|
+
], AccessKey);
|
|
63
|
+
//# sourceMappingURL=access-key.entity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"access-key.entity.js","sourceRoot":"","sources":["../../../../../../../packages/nest-auth/src/lib/user/entities/access-key.entity.ts"],"names":[],"mappings":";;;;AAAA,qCAUiB;AACjB,+CAAqC;AAG9B,IAAM,SAAS,GAAf,MAAM,SAAU,SAAQ,oBAAU;CAsCxC,CAAA;AAtCY,8BAAS;AAElB;IADC,IAAA,gCAAsB,EAAC,MAAM,CAAC;;qCACpB;AAGX;IADC,IAAA,gBAAM,GAAE;;uCACI;AAGb;IADC,IAAA,gBAAM,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;;4CACP;AAGlB;IADC,IAAA,gBAAM,GAAE;;6CACU;AAGnB;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8CACN;AAGrB;IADC,IAAA,gBAAM,EAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;2CACR;AAGlB;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACf,IAAI;4CAAC;AAGjB;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACd,IAAI;6CAAC;AAIlB;IAFC,IAAA,gBAAM,GAAE;IACR,IAAA,oBAAU,EAAC,CAAC,SAAoB,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC;;yCACtC;AAIf;IAFC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,kBAAI,CAAC;IACrB,IAAA,oBAAU,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;sCACzB,kBAAI;uCAAC;AAGX;IADC,IAAA,0BAAgB,GAAE;sCACR,IAAI;4CAAC;AAGhB;IADC,IAAA,0BAAgB,GAAE;sCACR,IAAI;4CAAC;oBArCP,SAAS;IADrB,IAAA,gBAAM,EAAC,uBAAuB,CAAC;GACnB,SAAS,CAsCrB"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AuthIdentity = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const typeorm_1 = require("typeorm");
|
|
6
|
+
const user_entity_1 = require("./user.entity");
|
|
7
|
+
let AuthIdentity = class AuthIdentity extends typeorm_1.BaseEntity {
|
|
8
|
+
};
|
|
9
|
+
exports.AuthIdentity = AuthIdentity;
|
|
10
|
+
tslib_1.__decorate([
|
|
11
|
+
(0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
|
|
12
|
+
tslib_1.__metadata("design:type", String)
|
|
13
|
+
], AuthIdentity.prototype, "id", void 0);
|
|
14
|
+
tslib_1.__decorate([
|
|
15
|
+
(0, typeorm_1.Column)(),
|
|
16
|
+
tslib_1.__metadata("design:type", String)
|
|
17
|
+
], AuthIdentity.prototype, "provider", void 0);
|
|
18
|
+
tslib_1.__decorate([
|
|
19
|
+
(0, typeorm_1.Column)({ nullable: true }),
|
|
20
|
+
tslib_1.__metadata("design:type", String)
|
|
21
|
+
], AuthIdentity.prototype, "providerId", void 0);
|
|
22
|
+
tslib_1.__decorate([
|
|
23
|
+
(0, typeorm_1.Column)({ type: 'simple-json', nullable: true, default: '{}' }),
|
|
24
|
+
tslib_1.__metadata("design:type", Object)
|
|
25
|
+
], AuthIdentity.prototype, "metadata", void 0);
|
|
26
|
+
tslib_1.__decorate([
|
|
27
|
+
(0, typeorm_1.CreateDateColumn)(),
|
|
28
|
+
tslib_1.__metadata("design:type", Date)
|
|
29
|
+
], AuthIdentity.prototype, "createdAt", void 0);
|
|
30
|
+
tslib_1.__decorate([
|
|
31
|
+
(0, typeorm_1.UpdateDateColumn)(),
|
|
32
|
+
tslib_1.__metadata("design:type", Date)
|
|
33
|
+
], AuthIdentity.prototype, "updatedAt", void 0);
|
|
34
|
+
tslib_1.__decorate([
|
|
35
|
+
(0, typeorm_1.Column)({ nullable: true }),
|
|
36
|
+
(0, typeorm_1.RelationId)((identity) => identity.user),
|
|
37
|
+
tslib_1.__metadata("design:type", String)
|
|
38
|
+
], AuthIdentity.prototype, "userId", void 0);
|
|
39
|
+
tslib_1.__decorate([
|
|
40
|
+
(0, typeorm_1.ManyToOne)(() => user_entity_1.User, { onDelete: 'CASCADE' }),
|
|
41
|
+
(0, typeorm_1.JoinColumn)({ name: 'userId' }),
|
|
42
|
+
tslib_1.__metadata("design:type", user_entity_1.User)
|
|
43
|
+
], AuthIdentity.prototype, "user", void 0);
|
|
44
|
+
exports.AuthIdentity = AuthIdentity = tslib_1.__decorate([
|
|
45
|
+
(0, typeorm_1.Entity)('nest_auth_identities')
|
|
46
|
+
], AuthIdentity);
|
|
47
|
+
//# sourceMappingURL=auth-identity.entity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-identity.entity.js","sourceRoot":"","sources":["../../../../../../../packages/nest-auth/src/lib/user/entities/auth-identity.entity.ts"],"names":[],"mappings":";;;;AAAA,qCAAoJ;AACpJ,+CAAqC;AAG9B,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,oBAAU;CA0B3C,CAAA;AA1BY,oCAAY;AAErB;IADC,IAAA,gCAAsB,EAAC,MAAM,CAAC;;wCACpB;AAGX;IADC,IAAA,gBAAM,GAAE;;8CACQ;AAGjB;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDACR;AAGnB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;8CACjC;AAG9B;IADC,IAAA,0BAAgB,GAAE;sCACR,IAAI;+CAAC;AAGhB;IADC,IAAA,0BAAgB,GAAE;sCACR,IAAI;+CAAC;AAIhB;IAFC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1B,IAAA,oBAAU,EAAC,CAAC,QAAsB,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;;4CACvC;AAIf;IAFC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,kBAAI,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IAC9C,IAAA,oBAAU,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;sCACzB,kBAAI;0CAAC;uBAzBF,YAAY;IADxB,IAAA,gBAAM,EAAC,sBAAsB,CAAC;GAClB,YAAY,CA0BxB"}
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.User = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const typeorm_1 = require("typeorm");
|
|
6
|
+
const bcrypt_1 = tslib_1.__importDefault(require("bcrypt"));
|
|
7
|
+
const tenant_1 = require("../../tenant");
|
|
8
|
+
const auth_identity_entity_1 = require("./auth-identity.entity");
|
|
9
|
+
const session_entity_1 = require("../../session/entities/session.entity");
|
|
10
|
+
const lodash_1 = require("lodash");
|
|
11
|
+
const otp_entity_1 = require("../../auth/entities/otp.entity");
|
|
12
|
+
const mfa_secret_entity_1 = require("../../auth/entities/mfa-secret.entity");
|
|
13
|
+
const role_entity_1 = require("../../role/entities/role.entity");
|
|
14
|
+
let User = class User extends typeorm_1.BaseEntity {
|
|
15
|
+
updateTenantFields() {
|
|
16
|
+
this.emailTenant = this.email ? `${this.email}:${this.tenantId || 'global'}` : null;
|
|
17
|
+
this.phoneTenant = this.phone ? `${this.phone}:${this.tenantId || 'global'}` : null;
|
|
18
|
+
}
|
|
19
|
+
async getPermissions() {
|
|
20
|
+
if (!this.roles) {
|
|
21
|
+
this.roles = await role_entity_1.Role.find({
|
|
22
|
+
select: {
|
|
23
|
+
id: true,
|
|
24
|
+
name: true,
|
|
25
|
+
permissions: {
|
|
26
|
+
id: true,
|
|
27
|
+
name: true
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
relations: ['permissions'],
|
|
31
|
+
where: { users: { id: this.id }, tenantId: this.tenantId }
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
return (0, lodash_1.chain)(this.roles)
|
|
35
|
+
.map(role => (0, lodash_1.map)(role.permissions, 'name'))
|
|
36
|
+
.flatten()
|
|
37
|
+
.uniq()
|
|
38
|
+
.value();
|
|
39
|
+
}
|
|
40
|
+
async getRoles() {
|
|
41
|
+
if (!this.roles) {
|
|
42
|
+
this.roles = await role_entity_1.Role.find({
|
|
43
|
+
select: {
|
|
44
|
+
id: true,
|
|
45
|
+
name: true,
|
|
46
|
+
},
|
|
47
|
+
where: { users: { id: this.id }, tenantId: this.tenantId }
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
return (0, lodash_1.chain)(this.roles)
|
|
51
|
+
.map(role => role.name)
|
|
52
|
+
.uniq()
|
|
53
|
+
.value();
|
|
54
|
+
}
|
|
55
|
+
async assignRoles(roles) {
|
|
56
|
+
this.roles = await role_entity_1.Role.find({
|
|
57
|
+
where: { name: (0, typeorm_1.In)(Array.isArray(roles) ? roles : [roles]), tenantId: this.tenantId }
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
async findOrCreateIdentity(provider, providerId) {
|
|
61
|
+
const existingIdentity = await auth_identity_entity_1.AuthIdentity.findOne({
|
|
62
|
+
where: { provider, providerId, userId: this.id }
|
|
63
|
+
});
|
|
64
|
+
if (existingIdentity) {
|
|
65
|
+
return existingIdentity;
|
|
66
|
+
}
|
|
67
|
+
const identity = new auth_identity_entity_1.AuthIdentity();
|
|
68
|
+
identity.provider = provider;
|
|
69
|
+
identity.providerId = providerId;
|
|
70
|
+
identity.user = this;
|
|
71
|
+
await identity.save();
|
|
72
|
+
return identity;
|
|
73
|
+
}
|
|
74
|
+
async validatePassword(password) {
|
|
75
|
+
if (!this.passwordHash)
|
|
76
|
+
return false;
|
|
77
|
+
return bcrypt_1.default.compare(password, this.passwordHash);
|
|
78
|
+
}
|
|
79
|
+
async setPassword(password) {
|
|
80
|
+
const salt = await bcrypt_1.default.genSalt();
|
|
81
|
+
this.passwordHash = await bcrypt_1.default.hash(password, salt);
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
exports.User = User;
|
|
85
|
+
tslib_1.__decorate([
|
|
86
|
+
(0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
|
|
87
|
+
tslib_1.__metadata("design:type", String)
|
|
88
|
+
], User.prototype, "id", void 0);
|
|
89
|
+
tslib_1.__decorate([
|
|
90
|
+
(0, typeorm_1.Column)({ nullable: true }),
|
|
91
|
+
(0, typeorm_1.Index)(),
|
|
92
|
+
tslib_1.__metadata("design:type", String)
|
|
93
|
+
], User.prototype, "email", void 0);
|
|
94
|
+
tslib_1.__decorate([
|
|
95
|
+
(0, typeorm_1.Column)({ nullable: true }),
|
|
96
|
+
(0, typeorm_1.Index)(),
|
|
97
|
+
tslib_1.__metadata("design:type", Date)
|
|
98
|
+
], User.prototype, "emailVerifiedAt", void 0);
|
|
99
|
+
tslib_1.__decorate([
|
|
100
|
+
(0, typeorm_1.Column)({ nullable: true }),
|
|
101
|
+
(0, typeorm_1.Index)(),
|
|
102
|
+
tslib_1.__metadata("design:type", String)
|
|
103
|
+
], User.prototype, "phone", void 0);
|
|
104
|
+
tslib_1.__decorate([
|
|
105
|
+
(0, typeorm_1.Column)({ nullable: true }),
|
|
106
|
+
(0, typeorm_1.Index)(),
|
|
107
|
+
tslib_1.__metadata("design:type", Date)
|
|
108
|
+
], User.prototype, "phoneVerifiedAt", void 0);
|
|
109
|
+
tslib_1.__decorate([
|
|
110
|
+
(0, typeorm_1.Column)({ nullable: true }),
|
|
111
|
+
tslib_1.__metadata("design:type", String)
|
|
112
|
+
], User.prototype, "passwordHash", void 0);
|
|
113
|
+
tslib_1.__decorate([
|
|
114
|
+
(0, typeorm_1.Column)({ default: false }),
|
|
115
|
+
tslib_1.__metadata("design:type", Boolean)
|
|
116
|
+
], User.prototype, "isVerified", void 0);
|
|
117
|
+
tslib_1.__decorate([
|
|
118
|
+
(0, typeorm_1.Column)({ default: true }),
|
|
119
|
+
tslib_1.__metadata("design:type", Boolean)
|
|
120
|
+
], User.prototype, "isActive", void 0);
|
|
121
|
+
tslib_1.__decorate([
|
|
122
|
+
(0, typeorm_1.Column)({ type: 'simple-json', nullable: true, default: '{}' }),
|
|
123
|
+
tslib_1.__metadata("design:type", Object)
|
|
124
|
+
], User.prototype, "metadata", void 0);
|
|
125
|
+
tslib_1.__decorate([
|
|
126
|
+
(0, typeorm_1.Column)({ nullable: true }),
|
|
127
|
+
tslib_1.__metadata("design:type", String)
|
|
128
|
+
], User.prototype, "tenantId", void 0);
|
|
129
|
+
tslib_1.__decorate([
|
|
130
|
+
(0, typeorm_1.Column)({ default: false }),
|
|
131
|
+
tslib_1.__metadata("design:type", Boolean)
|
|
132
|
+
], User.prototype, "isMfaEnabled", void 0);
|
|
133
|
+
tslib_1.__decorate([
|
|
134
|
+
(0, typeorm_1.Column)({ nullable: true }),
|
|
135
|
+
tslib_1.__metadata("design:type", String)
|
|
136
|
+
], User.prototype, "mfaRecoveryCode", void 0);
|
|
137
|
+
tslib_1.__decorate([
|
|
138
|
+
(0, typeorm_1.ManyToOne)(() => tenant_1.Tenant),
|
|
139
|
+
tslib_1.__metadata("design:type", tenant_1.Tenant)
|
|
140
|
+
], User.prototype, "tenant", void 0);
|
|
141
|
+
tslib_1.__decorate([
|
|
142
|
+
(0, typeorm_1.OneToMany)(() => auth_identity_entity_1.AuthIdentity, identity => identity.user),
|
|
143
|
+
tslib_1.__metadata("design:type", Array)
|
|
144
|
+
], User.prototype, "identities", void 0);
|
|
145
|
+
tslib_1.__decorate([
|
|
146
|
+
(0, typeorm_1.OneToMany)(() => mfa_secret_entity_1.MFASecret, mfaSecret => mfaSecret.user),
|
|
147
|
+
tslib_1.__metadata("design:type", Array)
|
|
148
|
+
], User.prototype, "mfaSecrets", void 0);
|
|
149
|
+
tslib_1.__decorate([
|
|
150
|
+
(0, typeorm_1.OneToMany)(() => session_entity_1.Session, session => session.user),
|
|
151
|
+
tslib_1.__metadata("design:type", Array)
|
|
152
|
+
], User.prototype, "sessions", void 0);
|
|
153
|
+
tslib_1.__decorate([
|
|
154
|
+
(0, typeorm_1.OneToMany)(() => otp_entity_1.OTP, otp => otp.user),
|
|
155
|
+
tslib_1.__metadata("design:type", Array)
|
|
156
|
+
], User.prototype, "otps", void 0);
|
|
157
|
+
tslib_1.__decorate([
|
|
158
|
+
(0, typeorm_1.ManyToMany)(() => role_entity_1.Role, role => role.users),
|
|
159
|
+
tslib_1.__metadata("design:type", Array)
|
|
160
|
+
], User.prototype, "roles", void 0);
|
|
161
|
+
tslib_1.__decorate([
|
|
162
|
+
(0, typeorm_1.Index)('IDX_USER_EMAIL_TENANT', { unique: true }),
|
|
163
|
+
(0, typeorm_1.Column)({ nullable: true }),
|
|
164
|
+
tslib_1.__metadata("design:type", String)
|
|
165
|
+
], User.prototype, "emailTenant", void 0);
|
|
166
|
+
tslib_1.__decorate([
|
|
167
|
+
(0, typeorm_1.Index)('IDX_USER_PHONE_TENANT', { unique: true }),
|
|
168
|
+
(0, typeorm_1.Column)({ nullable: true }),
|
|
169
|
+
tslib_1.__metadata("design:type", String)
|
|
170
|
+
], User.prototype, "phoneTenant", void 0);
|
|
171
|
+
tslib_1.__decorate([
|
|
172
|
+
(0, typeorm_1.CreateDateColumn)(),
|
|
173
|
+
tslib_1.__metadata("design:type", Date)
|
|
174
|
+
], User.prototype, "createdAt", void 0);
|
|
175
|
+
tslib_1.__decorate([
|
|
176
|
+
(0, typeorm_1.UpdateDateColumn)(),
|
|
177
|
+
tslib_1.__metadata("design:type", Date)
|
|
178
|
+
], User.prototype, "updatedAt", void 0);
|
|
179
|
+
tslib_1.__decorate([
|
|
180
|
+
(0, typeorm_1.BeforeInsert)(),
|
|
181
|
+
(0, typeorm_1.BeforeUpdate)(),
|
|
182
|
+
tslib_1.__metadata("design:type", Function),
|
|
183
|
+
tslib_1.__metadata("design:paramtypes", []),
|
|
184
|
+
tslib_1.__metadata("design:returntype", void 0)
|
|
185
|
+
], User.prototype, "updateTenantFields", null);
|
|
186
|
+
exports.User = User = tslib_1.__decorate([
|
|
187
|
+
(0, typeorm_1.Entity)('nest_auth_users')
|
|
188
|
+
], User);
|
|
189
|
+
//# sourceMappingURL=user.entity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.entity.js","sourceRoot":"","sources":["../../../../../../../packages/nest-auth/src/lib/user/entities/user.entity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UserCreatedEvent = void 0;
|
|
4
|
+
class UserCreatedEvent {
|
|
5
|
+
constructor(payload) {
|
|
6
|
+
this.payload = payload;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
exports.UserCreatedEvent = UserCreatedEvent;
|
|
10
|
+
//# sourceMappingURL=user-created.event.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-created.event.js","sourceRoot":"","sources":["../../../../../../../packages/nest-auth/src/lib/user/events/user-created.event.ts"],"names":[],"mappings":";;;AAOA,MAAa,gBAAgB;IACzB,YAA4B,OAAgC;QAAhC,YAAO,GAAP,OAAO,CAAyB;IAAI,CAAC;CACpE;AAFD,4CAEC"}
|