@ackplus/nest-auth 1.1.11 → 1.1.13
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/package.json +1 -1
- package/src/lib/admin-console/controllers/admin-roles.controller.d.ts.map +1 -1
- package/src/lib/admin-console/controllers/admin-roles.controller.js +1 -3
- package/src/lib/auth/controllers/auth.controller.d.ts +6 -0
- package/src/lib/auth/controllers/auth.controller.d.ts.map +1 -1
- package/src/lib/auth/controllers/auth.controller.js +6 -0
- package/src/lib/auth/events/two-factor-code-sent.event.d.ts +13 -0
- package/src/lib/auth/events/two-factor-code-sent.event.d.ts.map +1 -0
- package/src/lib/auth/events/two-factor-code-sent.event.js +9 -0
- package/src/lib/auth/index.d.ts +1 -0
- package/src/lib/auth/index.d.ts.map +1 -1
- package/src/lib/auth/index.js +1 -0
- package/src/lib/auth/services/auth.service.d.ts +3 -1
- package/src/lib/auth/services/auth.service.d.ts.map +1 -1
- package/src/lib/auth/services/auth.service.js +9 -2
- package/src/lib/auth/services/mfa.service.d.ts +3 -1
- package/src/lib/auth/services/mfa.service.d.ts.map +1 -1
- package/src/lib/auth/services/mfa.service.js +17 -7
- package/src/lib/auth.constants.d.ts +1 -0
- package/src/lib/auth.constants.d.ts.map +1 -1
- package/src/lib/auth.constants.js +1 -0
- package/src/lib/role/services/role.service.d.ts +13 -5
- package/src/lib/role/services/role.service.d.ts.map +1 -1
- package/src/lib/role/services/role.service.js +45 -47
- package/src/lib/tenant/services/tenant.service.d.ts.map +1 -1
- package/src/lib/tenant/services/tenant.service.js +0 -17
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-roles.controller.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nest-auth/src/lib/admin-console/controllers/admin-roles.controller.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAI/E,qBAEa,oBAAoB;IACnB,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,WAAW;IAGzC,SAAS;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"admin-roles.controller.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nest-auth/src/lib/admin-console/controllers/admin-roles.controller.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAI/E,qBAEa,oBAAoB;IACnB,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,WAAW;IAGzC,SAAS;;;;;;;;;;;;IAQT,UAAU,CAAS,GAAG,EAAE,kBAAkB;;;;;;;;;;;;IAY1C,UAAU,CAAc,EAAE,EAAE,MAAM,EAAU,GAAG,EAAE,kBAAkB;;;;;;;;;;;;IA0BnE,UAAU,CAAc,EAAE,EAAE,MAAM;;;IAKxC,OAAO,CAAC,UAAU;CAYnB"}
|
|
@@ -12,9 +12,7 @@ let AdminRolesController = class AdminRolesController {
|
|
|
12
12
|
this.roles = roles;
|
|
13
13
|
}
|
|
14
14
|
async listRoles() {
|
|
15
|
-
const roles = await this.roles.getRoles(
|
|
16
|
-
order: { name: 'ASC' },
|
|
17
|
-
});
|
|
15
|
+
const roles = await this.roles.getRoles();
|
|
18
16
|
return {
|
|
19
17
|
data: roles.map((role) => this.toSafeRole(role)),
|
|
20
18
|
};
|
|
@@ -56,6 +56,12 @@ export declare class AuthController {
|
|
|
56
56
|
changePassword(input: ChangePasswordRequestDto, res: Response): Promise<void>;
|
|
57
57
|
forgotPassword(input: ForgotPasswordRequestDto): Promise<MessageResponseDto>;
|
|
58
58
|
verifyForgotPasswordOtp(input: VerifyForgotPasswordOtpRequestDto): Promise<VerifyOtpResponseDto>;
|
|
59
|
+
/**
|
|
60
|
+
* Reset Password (Legacy - using OTP)
|
|
61
|
+
* @param input
|
|
62
|
+
* @returns
|
|
63
|
+
* @deprecated to-do remove in future release
|
|
64
|
+
*/
|
|
59
65
|
resetPassword(input: ResetPasswordRequestDto): Promise<MessageResponseDto>;
|
|
60
66
|
resetPasswordWithToken(input: ResetPasswordWithTokenRequestDto): Promise<MessageResponseDto>;
|
|
61
67
|
getUser(): Promise<import("../../core").NestAuthUser>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.controller.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nest-auth/src/lib/auth/controllers/auth.controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AACnF,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGnC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAG5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAEpE,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAW,MAAM,YAAY,CAAC;AACxE,OAAO,EAAE,wBAAwB,EAAE,MAAM,6CAA6C,CAAC;AACvF,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AAErF,OAAO,EAAE,iCAAiC,EAAE,MAAM,wDAAwD,CAAC;AAC3G,OAAO,EAAE,gCAAgC,EAAE,MAAM,uDAAuD,CAAC;AACzG,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,6CAA6C,CAAC;AACvF,OAAO,EAAE,+BAA+B,EAAE,MAAM,qDAAqD,CAAC;AACtG,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;AAGtF,qBACa,cAAc;IAEnB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,mBAAmB;gBAHnB,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,iBAAiB,EAC7B,mBAAmB,EAAE,mBAAmB;IAG7D;;OAEG;IACH,SAAS,CAAC,cAAc,IAAI,OAAO;IAKnC;;;;OAIG;IACH,SAAS,CAAC,kBAAkB,CACxB,GAAG,EAAE,QAAQ,EACb,UAAU,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,OAAO,CAAA;KAAE,EACjF,cAAc,GAAE,MAAoC,GACrD,IAAI;IAmBP;;OAEG;IACH,SAAS,CAAC,iBAAiB,CACvB,GAAG,EAAE,QAAQ,EACb,UAAU,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GAC1D,IAAI;IA4BD,MAAM,CAAS,KAAK,EAAE,gBAAgB,EAAS,GAAG,EAAE,QAAQ;IAe5D,KAAK,CAAS,KAAK,EAAE,eAAe,EAAS,GAAG,EAAE,QAAQ;IAe1D,YAAY,CAAS,KAAK,EAAE,sBAAsB,EAAS,GAAG,EAAE,QAAQ;IAaxE,WAAW,CAAiB,MAAM,EAAE,aAAa;;;IAkBjD,SAAS,CAAS,KAAK,EAAE,mBAAmB,EAAS,GAAG,EAAE,QAAQ;IAWlE,MAAM,CAAQ,GAAG,EAAE,QAAQ;IAiB3B,SAAS,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAYxC,cAAc,CAAS,KAAK,EAAE,wBAAwB,EAAS,GAAG,EAAE,QAAQ;IAU5E,cAAc,CAAS,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAUpF,uBAAuB,CAAS,KAAK,EAAE,iCAAiC,GAAG,OAAO,CAAC,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.controller.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nest-auth/src/lib/auth/controllers/auth.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -132,6 +132,12 @@ let AuthController = class AuthController {
|
|
|
132
132
|
async verifyForgotPasswordOtp(input) {
|
|
133
133
|
return await this.authService.verifyForgotPasswordOtp(input);
|
|
134
134
|
}
|
|
135
|
+
/**
|
|
136
|
+
* Reset Password (Legacy - using OTP)
|
|
137
|
+
* @param input
|
|
138
|
+
* @returns
|
|
139
|
+
* @deprecated to-do remove in future release
|
|
140
|
+
*/
|
|
135
141
|
async resetPassword(input) {
|
|
136
142
|
await this.authService.resetPassword(input);
|
|
137
143
|
return { message: 'Password reset successfully' };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { NestAuthUser } from "../../user/entities/user.entity";
|
|
2
|
+
import { MFAMethodEnum } from "../../core/interfaces/mfa-options.interface";
|
|
3
|
+
export interface TwoFactorCodeSentEventPayload {
|
|
4
|
+
user: NestAuthUser;
|
|
5
|
+
tenantId?: string;
|
|
6
|
+
method: MFAMethodEnum;
|
|
7
|
+
code: string;
|
|
8
|
+
}
|
|
9
|
+
export declare class TwoFactorCodeSentEvent {
|
|
10
|
+
readonly payload: TwoFactorCodeSentEventPayload;
|
|
11
|
+
constructor(payload: TwoFactorCodeSentEventPayload);
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=two-factor-code-sent.event.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"two-factor-code-sent.event.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nest-auth/src/lib/auth/events/two-factor-code-sent.event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAE5E,MAAM,WAAW,6BAA6B;IAC1C,IAAI,EAAE,YAAY,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,aAAa,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,sBAAsB;aAEX,OAAO,EAAE,6BAA6B;gBAAtC,OAAO,EAAE,6BAA6B;CAE7D"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TwoFactorCodeSentEvent = void 0;
|
|
4
|
+
class TwoFactorCodeSentEvent {
|
|
5
|
+
constructor(payload) {
|
|
6
|
+
this.payload = payload;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
exports.TwoFactorCodeSentEvent = TwoFactorCodeSentEvent;
|
package/src/lib/auth/index.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ export * from './events/user-2fa-verified.event';
|
|
|
9
9
|
export * from './events/user-logged-in.event';
|
|
10
10
|
export * from './events/user-refresh-token.event';
|
|
11
11
|
export * from './events/user-registered.event';
|
|
12
|
+
export * from './events/two-factor-code-sent.event';
|
|
12
13
|
export * from './services/auth.service';
|
|
13
14
|
export * from './services/cookie.service';
|
|
14
15
|
export * from './services/mfa.service';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/nest-auth/src/lib/auth/index.ts"],"names":[],"mappings":"AACA,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,cAAc,0CAA0C,CAAC;AAGzD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yCAAyC,CAAC;AACxD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mCAAmC,CAAC;AAClD,cAAc,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/nest-auth/src/lib/auth/index.ts"],"names":[],"mappings":"AACA,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,cAAc,0CAA0C,CAAC;AAGzD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yCAAyC,CAAC;AACxD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mCAAmC,CAAC;AAClD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qCAAqC,CAAC;AAGpD,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,kCAAkC,CAAC;AAGjD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAG7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,mCAAmC,CAAC;AAClD,cAAc,0CAA0C,CAAC;AACzD,cAAc,yCAAyC,CAAC;AACxD,cAAc,yCAAyC,CAAC;AACxD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,sDAAsD,CAAC;AACrE,cAAc,uDAAuD,CAAC;AACtE,cAAc,0CAA0C,CAAC;AACzD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,uCAAuC,CAAC;AACtD,cAAc,0CAA0C,CAAC;AACzD,cAAc,uCAAuC,CAAC;AACtD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,mCAAmC,CAAC;AAClD,cAAc,0CAA0C,CAAC;AACzD,cAAc,yCAAyC,CAAC;AACxD,cAAc,yCAAyC,CAAC;AACxD,cAAc,4CAA4C,CAAC;AAG3D,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC"}
|
package/src/lib/auth/index.js
CHANGED
|
@@ -17,6 +17,7 @@ tslib_1.__exportStar(require("./events/user-2fa-verified.event"), exports);
|
|
|
17
17
|
tslib_1.__exportStar(require("./events/user-logged-in.event"), exports);
|
|
18
18
|
tslib_1.__exportStar(require("./events/user-refresh-token.event"), exports);
|
|
19
19
|
tslib_1.__exportStar(require("./events/user-registered.event"), exports);
|
|
20
|
+
tslib_1.__exportStar(require("./events/two-factor-code-sent.event"), exports);
|
|
20
21
|
// Services
|
|
21
22
|
tslib_1.__exportStar(require("./services/auth.service"), exports);
|
|
22
23
|
tslib_1.__exportStar(require("./services/cookie.service"), exports);
|
|
@@ -21,6 +21,7 @@ import { ChangePasswordRequestDto } from '../dto/requests/change-password.reques
|
|
|
21
21
|
import { VerifyOtpResponseDto } from '../dto/responses/verify-otp.response.dto';
|
|
22
22
|
import { SendEmailVerificationRequestDto } from '../dto/requests/send-email-verification.request.dto';
|
|
23
23
|
import { VerifyEmailRequestDto } from '../dto/requests/verify-email.request.dto';
|
|
24
|
+
import { AuthConfigService } from '../../core/services/auth-config.service';
|
|
24
25
|
export declare class AuthService {
|
|
25
26
|
private readonly userRepository;
|
|
26
27
|
private otpRepository;
|
|
@@ -31,7 +32,8 @@ export declare class AuthService {
|
|
|
31
32
|
private readonly eventEmitter;
|
|
32
33
|
private readonly tenantService;
|
|
33
34
|
private readonly debugLogger;
|
|
34
|
-
|
|
35
|
+
private readonly authConfigService;
|
|
36
|
+
constructor(userRepository: Repository<NestAuthUser>, otpRepository: Repository<NestAuthOTP>, authProviderRegistry: AuthProviderRegistryService, mfaService: MfaService, sessionManager: SessionManagerService, jwtService: JwtService, eventEmitter: EventEmitter2, tenantService: TenantService, debugLogger: DebugLoggerService, authConfigService: AuthConfigService);
|
|
35
37
|
getUserWithRolesAndPermissions(userId: string, relations?: string[]): Promise<NestAuthUser>;
|
|
36
38
|
getUser(): Promise<NestAuthUser>;
|
|
37
39
|
signup(input: SignupRequestDto): Promise<AuthResponseDto>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.service.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nest-auth/src/lib/auth/services/auth.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAa7D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AAEvF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAE5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,6CAA6C,CAAC;AAEvF,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AAUrF,OAAO,EAAE,2BAA2B,EAAE,MAAM,oDAAoD,CAAC;AACjG,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAE9E,OAAO,EAAE,iCAAiC,EAAE,MAAM,wDAAwD,CAAC;AAC3G,OAAO,EAAE,gCAAgC,EAAE,MAAM,uDAAuD,CAAC;AACzG,OAAO,EAAE,wBAAwB,EAAE,MAAM,6CAA6C,CAAC;AACvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAChF,OAAO,EAAE,+BAA+B,EAAE,MAAM,qDAAqD,CAAC;AACtG,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.service.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nest-auth/src/lib/auth/services/auth.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,8 +28,9 @@ const auth_provider_registry_service_1 = require("../../core/services/auth-provi
|
|
|
28
28
|
const tenant_service_1 = require("../../tenant/services/tenant.service");
|
|
29
29
|
const debug_logger_service_1 = require("../../core/services/debug-logger.service");
|
|
30
30
|
const moment_1 = tslib_1.__importDefault(require("moment"));
|
|
31
|
+
const auth_config_service_1 = require("../../core/services/auth-config.service");
|
|
31
32
|
let AuthService = class AuthService {
|
|
32
|
-
constructor(userRepository, otpRepository, authProviderRegistry, mfaService, sessionManager, jwtService, eventEmitter, tenantService, debugLogger) {
|
|
33
|
+
constructor(userRepository, otpRepository, authProviderRegistry, mfaService, sessionManager, jwtService, eventEmitter, tenantService, debugLogger, authConfigService) {
|
|
33
34
|
this.userRepository = userRepository;
|
|
34
35
|
this.otpRepository = otpRepository;
|
|
35
36
|
this.authProviderRegistry = authProviderRegistry;
|
|
@@ -39,6 +40,7 @@ let AuthService = class AuthService {
|
|
|
39
40
|
this.eventEmitter = eventEmitter;
|
|
40
41
|
this.tenantService = tenantService;
|
|
41
42
|
this.debugLogger = debugLogger;
|
|
43
|
+
this.authConfigService = authConfigService;
|
|
42
44
|
}
|
|
43
45
|
getUserWithRolesAndPermissions(userId, relations = []) {
|
|
44
46
|
return this.userRepository.findOne({
|
|
@@ -59,6 +61,10 @@ let AuthService = class AuthService {
|
|
|
59
61
|
async signup(input) {
|
|
60
62
|
this.debugLogger.logFunctionEntry('signup', 'AuthService', { email: input.email, phone: input.phone, hasPassword: !!input.password });
|
|
61
63
|
try {
|
|
64
|
+
const config = this.authConfigService.getConfig();
|
|
65
|
+
if (config.registration?.enabled === false) {
|
|
66
|
+
throw new common_1.ForbiddenException('Registration is disabled');
|
|
67
|
+
}
|
|
62
68
|
const { email, phone, password } = input;
|
|
63
69
|
let { tenantId = null } = input;
|
|
64
70
|
// Resolve tenant ID - use provided or default
|
|
@@ -730,5 +736,6 @@ exports.AuthService = AuthService = tslib_1.__decorate([
|
|
|
730
736
|
jwt_service_1.JwtService,
|
|
731
737
|
event_emitter_1.EventEmitter2,
|
|
732
738
|
tenant_service_1.TenantService,
|
|
733
|
-
debug_logger_service_1.DebugLoggerService
|
|
739
|
+
debug_logger_service_1.DebugLoggerService,
|
|
740
|
+
auth_config_service_1.AuthConfigService])
|
|
734
741
|
], AuthService);
|
|
@@ -3,12 +3,14 @@ import { NestAuthMFASecret } from '../../auth/entities/mfa-secret.entity';
|
|
|
3
3
|
import { MFAMethodEnum, MFAOptions } from '../../core/interfaces/mfa-options.interface';
|
|
4
4
|
import { NestAuthUser } from '../../user/entities/user.entity';
|
|
5
5
|
import { NestAuthOTP } from '../../auth/entities/otp.entity';
|
|
6
|
+
import { EventEmitter2 } from '@nestjs/event-emitter';
|
|
6
7
|
export declare class MfaService {
|
|
7
8
|
private mfaSecretRepository;
|
|
8
9
|
private userRepository;
|
|
9
10
|
private otpRepository;
|
|
11
|
+
private eventEmitter;
|
|
10
12
|
mfaConfig: MFAOptions;
|
|
11
|
-
constructor(mfaSecretRepository: Repository<NestAuthMFASecret>, userRepository: Repository<NestAuthUser>, otpRepository: Repository<NestAuthOTP
|
|
13
|
+
constructor(mfaSecretRepository: Repository<NestAuthMFASecret>, userRepository: Repository<NestAuthUser>, otpRepository: Repository<NestAuthOTP>, eventEmitter: EventEmitter2);
|
|
12
14
|
requireMfaEnabledForApp(throwError?: boolean): boolean;
|
|
13
15
|
private checkIsMfaEnabledForApp;
|
|
14
16
|
getVerifiedMethods(userId: string): Promise<MFAMethodEnum[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mfa.service.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nest-auth/src/lib/auth/services/mfa.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAY,UAAU,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAG1E,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,6CAA6C,CAAC;AAExF,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"mfa.service.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nest-auth/src/lib/auth/services/mfa.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAY,UAAU,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAG1E,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,6CAA6C,CAAC;AAExF,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAK7D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAKtD,qBACa,UAAU;IAMf,OAAO,CAAC,mBAAmB;IAG3B,OAAO,CAAC,cAAc;IAGtB,OAAO,CAAC,aAAa;IAErB,OAAO,CAAC,YAAY;IAZxB,SAAS,EAAE,UAAU,CAAA;gBAIT,mBAAmB,EAAE,UAAU,CAAC,iBAAiB,CAAC,EAGlD,cAAc,EAAE,UAAU,CAAC,YAAY,CAAC,EAGxC,aAAa,EAAE,UAAU,CAAC,WAAW,CAAC,EAEtC,YAAY,EAAE,aAAa;IAKvC,uBAAuB,CAAC,UAAU,GAAE,OAAc;IAUlD,OAAO,CAAC,uBAAuB;IAIzB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAiC5D,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAmC3D,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAkCpE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAmDpF,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAqBjG,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA6BnF,cAAc,CAAC,MAAM,EAAE,MAAM;;;;;;;;IAmB7B,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM7C,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgB/C,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAW9C,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ/D,SAAS,CAAC,MAAM,EAAE,MAAM;IAexB,UAAU,CAAC,MAAM,EAAE,MAAM;IASzB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMjD,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUrD,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IA6B1E,mBAAmB,IAAI,aAAa,EAAE;IAOhC,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAY1D"}
|
|
@@ -16,11 +16,15 @@ const otp_interface_1 = require("../../core/interfaces/otp.interface");
|
|
|
16
16
|
const otp_1 = require("../../utils/otp");
|
|
17
17
|
const ms_1 = tslib_1.__importDefault(require("ms"));
|
|
18
18
|
const auth_config_service_1 = require("../../core/services/auth-config.service");
|
|
19
|
+
const event_emitter_1 = require("@nestjs/event-emitter");
|
|
20
|
+
const auth_constants_2 = require("../../auth.constants");
|
|
21
|
+
const two_factor_code_sent_event_1 = require("../events/two-factor-code-sent.event");
|
|
19
22
|
let MfaService = class MfaService {
|
|
20
|
-
constructor(mfaSecretRepository, userRepository, otpRepository) {
|
|
23
|
+
constructor(mfaSecretRepository, userRepository, otpRepository, eventEmitter) {
|
|
21
24
|
this.mfaSecretRepository = mfaSecretRepository;
|
|
22
25
|
this.userRepository = userRepository;
|
|
23
26
|
this.otpRepository = otpRepository;
|
|
27
|
+
this.eventEmitter = eventEmitter;
|
|
24
28
|
this.mfaConfig = auth_config_service_1.AuthConfigService.getOptions().mfa;
|
|
25
29
|
}
|
|
26
30
|
requireMfaEnabledForApp(throwError = true) {
|
|
@@ -98,11 +102,16 @@ let MfaService = class MfaService {
|
|
|
98
102
|
code,
|
|
99
103
|
});
|
|
100
104
|
await this.otpRepository.save(otp);
|
|
101
|
-
if (method === mfa_options_interface_1.MFAMethodEnum.EMAIL) {
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
105
|
+
if (method === mfa_options_interface_1.MFAMethodEnum.EMAIL || method === mfa_options_interface_1.MFAMethodEnum.SMS) {
|
|
106
|
+
const user = await this.userRepository.findOne({ where: { id: userId } });
|
|
107
|
+
if (user) {
|
|
108
|
+
await this.eventEmitter.emitAsync(auth_constants_2.NestAuthEvents.TWO_FACTOR_CODE_SENT, new two_factor_code_sent_event_1.TwoFactorCodeSentEvent({
|
|
109
|
+
user,
|
|
110
|
+
tenantId: user.tenantId,
|
|
111
|
+
method,
|
|
112
|
+
code,
|
|
113
|
+
}));
|
|
114
|
+
}
|
|
106
115
|
}
|
|
107
116
|
return true;
|
|
108
117
|
}
|
|
@@ -308,5 +317,6 @@ exports.MfaService = MfaService = tslib_1.__decorate([
|
|
|
308
317
|
tslib_1.__param(2, (0, typeorm_1.InjectRepository)(otp_entity_1.NestAuthOTP)),
|
|
309
318
|
tslib_1.__metadata("design:paramtypes", [typeorm_2.Repository,
|
|
310
319
|
typeorm_2.Repository,
|
|
311
|
-
typeorm_2.Repository
|
|
320
|
+
typeorm_2.Repository,
|
|
321
|
+
event_emitter_1.EventEmitter2])
|
|
312
322
|
], MfaService);
|
|
@@ -24,6 +24,7 @@ export declare const NestAuthEvents: {
|
|
|
24
24
|
readonly LOGGED_IN: "nest_auth.logged_in";
|
|
25
25
|
readonly REGISTERED: "nest_auth.registered";
|
|
26
26
|
readonly TWO_FACTOR_VERIFIED: "nest_auth.two_factor_verified";
|
|
27
|
+
readonly TWO_FACTOR_CODE_SENT: "nest_auth.two_factor_code_sent";
|
|
27
28
|
readonly REFRESH_TOKEN: "nest_auth.refresh_token";
|
|
28
29
|
readonly PASSWORD_RESET_REQUESTED: "nest_auth.password_reset_requested";
|
|
29
30
|
readonly PASSWORD_RESET: "nest_auth.password_reset";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.constants.d.ts","sourceRoot":"","sources":["../../../../../packages/nest-auth/src/lib/auth.constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,kCAAkC,CAAC;AACnE,eAAO,MAAM,gCAAgC,qCAAqC,CAAC;AAInF,eAAO,MAAM,iBAAiB,QAAQ,CAAC;AACvC,eAAO,MAAM,oBAAoB,WAAW,CAAC;AAC7C,eAAO,MAAM,sBAAsB,aAAa,CAAC;AACjD,eAAO,MAAM,mBAAmB,UAAU,CAAC;AAC3C,eAAO,MAAM,oBAAoB,WAAW,CAAC;AAC7C,eAAO,MAAM,mBAAmB,UAAU,CAAC;AAC3C,eAAO,MAAM,mBAAmB,UAAU,CAAC;AAI3C,eAAO,MAAM,6BAA6B,mBAAmB,CAAC;AAC9D,eAAO,MAAM,2BAA2B,iBAAiB,CAAC;AAC1D,eAAO,MAAM,0BAA0B,gBAAgB,CAAC;AACxD,eAAO,MAAM,oCAAoC,0BAA0B,CAAC;AAC5E,eAAO,MAAM,uBAAuB,sBAAsB,CAAC;AAC3D,eAAO,MAAM,qBAAqB,oBAAoB,CAAC;AAEvD,eAAO,MAAM,qBAAqB,0BAA0B,CAAC;AAC7D,eAAO,MAAM,qBAAqB,0BAA0B,CAAC;AAI7D,eAAO,MAAM,wBAAwB,gBAAgB,CAAC;AACtD,eAAO,MAAM,yBAAyB,iBAAiB,CAAC;AAGxD,eAAO,MAAM,kBAAkB,QAAQ,CAAC;AAGxC,eAAO,MAAM,cAAc
|
|
1
|
+
{"version":3,"file":"auth.constants.d.ts","sourceRoot":"","sources":["../../../../../packages/nest-auth/src/lib/auth.constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,kCAAkC,CAAC;AACnE,eAAO,MAAM,gCAAgC,qCAAqC,CAAC;AAInF,eAAO,MAAM,iBAAiB,QAAQ,CAAC;AACvC,eAAO,MAAM,oBAAoB,WAAW,CAAC;AAC7C,eAAO,MAAM,sBAAsB,aAAa,CAAC;AACjD,eAAO,MAAM,mBAAmB,UAAU,CAAC;AAC3C,eAAO,MAAM,oBAAoB,WAAW,CAAC;AAC7C,eAAO,MAAM,mBAAmB,UAAU,CAAC;AAC3C,eAAO,MAAM,mBAAmB,UAAU,CAAC;AAI3C,eAAO,MAAM,6BAA6B,mBAAmB,CAAC;AAC9D,eAAO,MAAM,2BAA2B,iBAAiB,CAAC;AAC1D,eAAO,MAAM,0BAA0B,gBAAgB,CAAC;AACxD,eAAO,MAAM,oCAAoC,0BAA0B,CAAC;AAC5E,eAAO,MAAM,uBAAuB,sBAAsB,CAAC;AAC3D,eAAO,MAAM,qBAAqB,oBAAoB,CAAC;AAEvD,eAAO,MAAM,qBAAqB,0BAA0B,CAAC;AAC7D,eAAO,MAAM,qBAAqB,0BAA0B,CAAC;AAI7D,eAAO,MAAM,wBAAwB,gBAAgB,CAAC;AACtD,eAAO,MAAM,yBAAyB,iBAAiB,CAAC;AAGxD,eAAO,MAAM,kBAAkB,QAAQ,CAAC;AAGxC,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;CA6BjB,CAAC"}
|
|
@@ -33,6 +33,7 @@ exports.NestAuthEvents = {
|
|
|
33
33
|
LOGGED_IN: 'nest_auth.logged_in',
|
|
34
34
|
REGISTERED: 'nest_auth.registered',
|
|
35
35
|
TWO_FACTOR_VERIFIED: 'nest_auth.two_factor_verified',
|
|
36
|
+
TWO_FACTOR_CODE_SENT: 'nest_auth.two_factor_code_sent',
|
|
36
37
|
REFRESH_TOKEN: 'nest_auth.refresh_token',
|
|
37
38
|
PASSWORD_RESET_REQUESTED: 'nest_auth.password_reset_requested',
|
|
38
39
|
PASSWORD_RESET: 'nest_auth.password_reset',
|
|
@@ -5,14 +5,22 @@ export declare class RoleService {
|
|
|
5
5
|
private roleRepository;
|
|
6
6
|
private tenantService;
|
|
7
7
|
constructor(roleRepository: Repository<NestAuthRole>, tenantService: TenantService);
|
|
8
|
-
createRole(name: string, guard: string, tenantId?: string, isSystem?: boolean, permissionIds?: string | string[]): Promise<NestAuthRole>;
|
|
8
|
+
createRole(name: string, guard: string, tenantId?: string | null, isSystem?: boolean, permissionIds?: string | string[]): Promise<NestAuthRole>;
|
|
9
9
|
getRoleById(id: string, options?: FindOneOptions<NestAuthRole>): Promise<NestAuthRole>;
|
|
10
10
|
getRoleByName(name: string, guard?: string, tenantId?: string, options?: FindOneOptions<NestAuthRole>): Promise<NestAuthRole>;
|
|
11
11
|
getSystemRoles(options?: FindManyOptions<NestAuthRole>): Promise<NestAuthRole[]>;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
/**
|
|
13
|
+
* Get roles
|
|
14
|
+
* @param params
|
|
15
|
+
* @param options
|
|
16
|
+
* @returns
|
|
17
|
+
*/
|
|
18
|
+
getRoles(params?: {
|
|
19
|
+
guard?: string;
|
|
20
|
+
tenantId?: string;
|
|
21
|
+
onlyTenantRoles?: boolean;
|
|
22
|
+
onlySystemRoles?: boolean;
|
|
23
|
+
}, options?: FindManyOptions<NestAuthRole>): Promise<NestAuthRole[]>;
|
|
16
24
|
updateRole(id: string, data: Partial<NestAuthRole>): Promise<NestAuthRole>;
|
|
17
25
|
updateRolePermissions(id: string, permissionIds: string | string[]): Promise<NestAuthRole>;
|
|
18
26
|
deleteRole(id: string): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"role.service.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nest-auth/src/lib/role/services/role.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAU,UAAU,
|
|
1
|
+
{"version":3,"file":"role.service.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nest-auth/src/lib/role/services/role.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAU,UAAU,EAAY,MAAM,SAAS,CAAC;AACxF,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,qBACa,WAAW;IAGhB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,aAAa;gBADb,cAAc,EAAE,UAAU,CAAC,YAAY,CAAC,EACxC,aAAa,EAAE,aAAa;IAGlC,UAAU,CACZ,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,QAAQ,GAAE,MAAM,GAAG,IAAW,EAC9B,QAAQ,GAAE,OAAe,EACzB,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAClC,OAAO,CAAC,YAAY,CAAC;IA+BlB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;IAetF,aAAa,CACf,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,cAAc,CAAC,YAAY,CAAC,GACvC,OAAO,CAAC,YAAY,CAAC;IA4BlB,cAAc,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IActF;;;;;OAKG;IACG,QAAQ,CACV,MAAM,GAAE;QACJ,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,eAAe,CAAC,EAAE,OAAO,CAAC;KACxB,EACN,OAAO,CAAC,EAAE,eAAe,CAAC,YAAY,CAAC,GACxC,OAAO,CAAC,YAAY,EAAE,CAAC;IAyDpB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;IAuD1E,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC;IAqB1F,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBrC,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAMpD"}
|
|
@@ -85,64 +85,62 @@ let RoleService = class RoleService {
|
|
|
85
85
|
}
|
|
86
86
|
});
|
|
87
87
|
}
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
88
|
+
/**
|
|
89
|
+
* Get roles
|
|
90
|
+
* @param params
|
|
91
|
+
* @param options
|
|
92
|
+
* @returns
|
|
93
|
+
*/
|
|
94
|
+
async getRoles(params = {}, options) {
|
|
95
|
+
const { guard, onlyTenantRoles, onlySystemRoles } = params;
|
|
96
|
+
let { tenantId } = params;
|
|
97
|
+
if (!onlySystemRoles) {
|
|
98
|
+
tenantId = await this.tenantService.resolveTenantId(tenantId);
|
|
99
|
+
}
|
|
100
|
+
const query = this.roleRepository.createQueryBuilder();
|
|
101
|
+
// const hasPagination = options?.skip !== undefined && options?.take !== undefined;
|
|
102
|
+
if (guard) {
|
|
103
|
+
query.andWhere(`${query.alias}.guard = :guard`, { guard });
|
|
104
|
+
}
|
|
105
|
+
if (onlySystemRoles) {
|
|
106
|
+
query.andWhere(`${query.alias}.isSystem = :isSystem`, { isSystem: true });
|
|
107
|
+
}
|
|
108
|
+
else if (onlyTenantRoles) {
|
|
109
|
+
if (!tenantId) {
|
|
110
|
+
return [];
|
|
111
|
+
}
|
|
112
|
+
query.andWhere(`${query.alias}.tenantId = :tenantId`, { tenantId });
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
if (tenantId) {
|
|
116
|
+
query.andWhere(new typeorm_2.Brackets(qb => {
|
|
117
|
+
qb.where(`${query.alias}.tenantId = :tenantId`, { tenantId })
|
|
118
|
+
.orWhere(`${query.alias}.isSystem = :isSystem`, { isSystem: true });
|
|
119
|
+
}));
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
query.andWhere(`${query.alias}.isSystem = :isSystem`, { isSystem: true });
|
|
101
123
|
}
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
async getRolesByGuard(guard, tenantId, options) {
|
|
105
|
-
if (!guard) {
|
|
106
|
-
return [];
|
|
107
|
-
}
|
|
108
|
-
return this.roleRepository.find({
|
|
109
|
-
...(options ? options : {}),
|
|
110
|
-
where: {
|
|
111
|
-
guard,
|
|
112
|
-
...(tenantId ? { tenantId } : { tenantId: (0, typeorm_2.IsNull)() }),
|
|
113
|
-
...(options?.where ? options.where : {})
|
|
114
|
-
},
|
|
115
|
-
});
|
|
116
|
-
}
|
|
117
|
-
async getRolesByTenant(tenantId, includeSystemRoles = true, options) {
|
|
118
|
-
tenantId = await this.tenantService.resolveTenantId(tenantId);
|
|
119
|
-
if (!tenantId) {
|
|
120
|
-
return [];
|
|
121
|
-
}
|
|
122
|
-
const query = this.roleRepository.createQueryBuilder('role');
|
|
123
|
-
// Add tenant condition
|
|
124
|
-
query.where('role.tenantId = :tenantId', { tenantId });
|
|
125
|
-
// Add system roles condition if needed
|
|
126
|
-
if (includeSystemRoles) {
|
|
127
|
-
query.orWhere('role.tenantId IS NULL AND role.isSystem = :isSystem', { isSystem: true });
|
|
128
124
|
}
|
|
129
|
-
// Apply any additional options
|
|
130
125
|
if (options) {
|
|
131
126
|
if (options.where) {
|
|
132
127
|
query.andWhere(options.where);
|
|
133
128
|
}
|
|
134
129
|
if (options.order) {
|
|
135
130
|
Object.entries(options.order).forEach(([key, value]) => {
|
|
136
|
-
query.addOrderBy(
|
|
131
|
+
query.addOrderBy(`${query.alias}.${key}`, value);
|
|
137
132
|
});
|
|
138
133
|
}
|
|
139
|
-
if (options.skip) {
|
|
140
|
-
query.skip(options.skip);
|
|
141
|
-
}
|
|
142
|
-
if (options.take) {
|
|
143
|
-
query.take(options.take);
|
|
144
|
-
}
|
|
145
134
|
}
|
|
135
|
+
else {
|
|
136
|
+
query.orderBy(`${query.alias}.name`, 'ASC');
|
|
137
|
+
}
|
|
138
|
+
query.take(1000);
|
|
139
|
+
// if (hasPagination) {
|
|
140
|
+
// query.skip(options.skip);
|
|
141
|
+
// query.take(options.take);
|
|
142
|
+
// return query.getManyAndCount();
|
|
143
|
+
// }
|
|
146
144
|
return query.getMany();
|
|
147
145
|
}
|
|
148
146
|
async updateRole(id, data) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenant.service.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nest-auth/src/lib/tenant/services/tenant.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAKtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAG9E,qBACa,aAAa;IAMlB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,WAAW;IAPvB,OAAO,CAAC,aAAa,CAA+B;gBAIxC,gBAAgB,EAAE,UAAU,CAAC,cAAc,CAAC,EAC5C,YAAY,EAAE,aAAa,EAC3B,UAAU,EAAE,iBAAiB,EAC7B,WAAW,EAAE,kBAAkB;IAGrC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;IA8CpE,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;IAgBlG;;OAEG;IACG,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;IAatG;;;OAGG;IACG,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;IAapG,UAAU,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAIhF,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"tenant.service.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nest-auth/src/lib/tenant/services/tenant.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAKtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAG9E,qBACa,aAAa;IAMlB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,WAAW;IAPvB,OAAO,CAAC,aAAa,CAA+B;gBAIxC,gBAAgB,EAAE,UAAU,CAAC,cAAc,CAAC,EAC5C,YAAY,EAAE,aAAa,EAC3B,UAAU,EAAE,iBAAiB,EAC7B,WAAW,EAAE,kBAAkB;IAGrC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;IA8CpE,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;IAgBlG;;OAEG;IACG,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;IAatG;;;OAGG;IACG,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;IAapG,UAAU,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAIhF,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;IA6ChF,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBvC,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC;IAe1E,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;IAmBxF,uBAAuB,IAAI,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IA6D/D,gBAAgB,IAAI,cAAc,GAAG,IAAI;IAIzC,kBAAkB,IAAI,MAAM,GAAG,IAAI;IAI7B,wBAAwB,IAAI,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAQ1D,eAAe,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAgBlF"}
|
|
@@ -126,16 +126,6 @@ let TenantService = class TenantService {
|
|
|
126
126
|
});
|
|
127
127
|
}
|
|
128
128
|
}
|
|
129
|
-
// If domain is being changed, check for conflicts (legacy support)
|
|
130
|
-
if (data.domain && data.domain !== tenant.domain) {
|
|
131
|
-
const existingTenant = await this.getTenantByDomain(data.domain);
|
|
132
|
-
if (existingTenant && existingTenant.id !== tenant.id) {
|
|
133
|
-
throw new common_1.ConflictException({
|
|
134
|
-
message: `Tenant with domain '${data.domain}' already exists`,
|
|
135
|
-
code: 'TENANT_ALREADY_EXISTS'
|
|
136
|
-
});
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
129
|
Object.assign(tenant, data);
|
|
140
130
|
const updatedTenant = await this.tenantRepository.save(tenant);
|
|
141
131
|
// Emit tenant updated event
|
|
@@ -212,16 +202,12 @@ let TenantService = class TenantService {
|
|
|
212
202
|
if (config.defaultTenant.slug) {
|
|
213
203
|
defaultTenant = await this.getTenantBySlug(config.defaultTenant.slug);
|
|
214
204
|
}
|
|
215
|
-
else if (config.defaultTenant.domain) {
|
|
216
|
-
defaultTenant = await this.getTenantByDomain(config.defaultTenant.domain);
|
|
217
|
-
}
|
|
218
205
|
if (!defaultTenant) {
|
|
219
206
|
// Create the default tenant
|
|
220
207
|
try {
|
|
221
208
|
defaultTenant = await this.createTenant({
|
|
222
209
|
name: config.defaultTenant.name,
|
|
223
210
|
slug: config.defaultTenant.slug || null,
|
|
224
|
-
domain: config.defaultTenant.domain || null, // Legacy support
|
|
225
211
|
description: config.defaultTenant.description || 'Default tenant',
|
|
226
212
|
metadata: config.defaultTenant.metadata || {},
|
|
227
213
|
isActive: true
|
|
@@ -233,9 +219,6 @@ let TenantService = class TenantService {
|
|
|
233
219
|
if (config.defaultTenant.slug) {
|
|
234
220
|
defaultTenant = await this.getTenantBySlug(config.defaultTenant.slug);
|
|
235
221
|
}
|
|
236
|
-
else if (config.defaultTenant.domain) {
|
|
237
|
-
defaultTenant = await this.getTenantByDomain(config.defaultTenant.domain);
|
|
238
|
-
}
|
|
239
222
|
}
|
|
240
223
|
if (!defaultTenant) {
|
|
241
224
|
throw error;
|