@ackplus/nest-auth 0.0.37 → 0.0.38
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/index.cjs.d.ts +1 -0
- package/index.cjs.js +105236 -0
- package/package.json +2 -2
- package/src/lib/core/entities.d.ts +1 -1
- package/README.md +0 -226
- package/src/index.js +0 -12
- package/src/index.js.map +0 -1
- package/src/lib/auth/auth.module.js +0 -52
- package/src/lib/auth/auth.module.js.map +0 -1
- package/src/lib/auth/controllers/auth.controller.js +0 -189
- package/src/lib/auth/controllers/auth.controller.js.map +0 -1
- package/src/lib/auth/controllers/mfa.controller.js +0 -130
- package/src/lib/auth/controllers/mfa.controller.js.map +0 -1
- package/src/lib/auth/dto/index.js +0 -1
- package/src/lib/auth/dto/index.js.map +0 -1
- package/src/lib/auth/dto/requests/forgot-password.request.dto.js +0 -30
- package/src/lib/auth/dto/requests/forgot-password.request.dto.js.map +0 -1
- package/src/lib/auth/dto/requests/login.request.dto.js +0 -34
- package/src/lib/auth/dto/requests/login.request.dto.js.map +0 -1
- package/src/lib/auth/dto/requests/refresh-token.request.dto.js +0 -15
- package/src/lib/auth/dto/requests/refresh-token.request.dto.js.map +0 -1
- package/src/lib/auth/dto/requests/reset-password.request.dto.js +0 -42
- package/src/lib/auth/dto/requests/reset-password.request.dto.js.map +0 -1
- package/src/lib/auth/dto/requests/send-mfa-code.request.dto.js +0 -16
- package/src/lib/auth/dto/requests/send-mfa-code.request.dto.js.map +0 -1
- package/src/lib/auth/dto/requests/signup.request.dto.js +0 -37
- package/src/lib/auth/dto/requests/signup.request.dto.js.map +0 -1
- package/src/lib/auth/dto/requests/social-login.request.dto.js +0 -16
- package/src/lib/auth/dto/requests/social-login.request.dto.js.map +0 -1
- package/src/lib/auth/dto/requests/verify-2fa.request.dto.js +0 -21
- package/src/lib/auth/dto/requests/verify-2fa.request.dto.js.map +0 -1
- package/src/lib/auth/dto/requests/verify-totp-setup.request.dto.js +0 -20
- package/src/lib/auth/dto/requests/verify-totp-setup.request.dto.js.map +0 -1
- package/src/lib/auth/dto/responses/auth.response.dto.js +0 -50
- package/src/lib/auth/dto/responses/auth.response.dto.js.map +0 -1
- package/src/lib/auth/entities/mfa-secret.entity.js +0 -50
- package/src/lib/auth/entities/mfa-secret.entity.js.map +0 -1
- package/src/lib/auth/entities/otp.entity.js +0 -50
- package/src/lib/auth/entities/otp.entity.js.map +0 -1
- package/src/lib/auth/events/logged-out-all.event.js +0 -10
- package/src/lib/auth/events/logged-out-all.event.js.map +0 -1
- package/src/lib/auth/events/logged-out.event.js +0 -10
- package/src/lib/auth/events/logged-out.event.js.map +0 -1
- package/src/lib/auth/events/password-reset-requested.event.js +0 -10
- package/src/lib/auth/events/password-reset-requested.event.js.map +0 -1
- package/src/lib/auth/events/password-reset.event.js +0 -10
- package/src/lib/auth/events/password-reset.event.js.map +0 -1
- package/src/lib/auth/events/user-2fa-verified.event.js +0 -10
- package/src/lib/auth/events/user-2fa-verified.event.js.map +0 -1
- package/src/lib/auth/events/user-logged-in.event.js +0 -10
- package/src/lib/auth/events/user-logged-in.event.js.map +0 -1
- package/src/lib/auth/events/user-refresh-token.event.js +0 -10
- package/src/lib/auth/events/user-refresh-token.event.js.map +0 -1
- package/src/lib/auth/index.js +0 -20
- package/src/lib/auth/index.js.map +0 -1
- package/src/lib/auth/services/auth.service.js +0 -396
- package/src/lib/auth/services/auth.service.js.map +0 -1
- package/src/lib/auth/services/cookie.service.js +0 -43
- package/src/lib/auth/services/cookie.service.js.map +0 -1
- package/src/lib/auth/services/mfa.service.js +0 -255
- package/src/lib/auth/services/mfa.service.js.map +0 -1
- package/src/lib/auth.constants.js +0 -43
- package/src/lib/auth.constants.js.map +0 -1
- package/src/lib/core/core.module.js +0 -67
- package/src/lib/core/core.module.js.map +0 -1
- package/src/lib/core/decorators/role.decorator.js +0 -14
- package/src/lib/core/decorators/role.decorator.js.map +0 -1
- package/src/lib/core/decorators/skip-mfa.decorator.js +0 -8
- package/src/lib/core/decorators/skip-mfa.decorator.js.map +0 -1
- package/src/lib/core/dto/message.response.dto.js +0 -13
- package/src/lib/core/dto/message.response.dto.js.map +0 -1
- package/src/lib/core/entities.js +0 -34
- package/src/lib/core/entities.js.map +0 -1
- package/src/lib/core/guards/auth.guard.js +0 -135
- package/src/lib/core/guards/auth.guard.js.map +0 -1
- package/src/lib/core/guards/role.guard.js +0 -40
- package/src/lib/core/guards/role.guard.js.map +0 -1
- package/src/lib/core/index.js +0 -27
- package/src/lib/core/index.js.map +0 -1
- package/src/lib/core/interfaces/auth-module-options.interface.js +0 -3
- package/src/lib/core/interfaces/auth-module-options.interface.js.map +0 -1
- package/src/lib/core/interfaces/mfa-options.interface.js +0 -10
- package/src/lib/core/interfaces/mfa-options.interface.js.map +0 -1
- package/src/lib/core/interfaces/otp.interface.js +0 -10
- package/src/lib/core/interfaces/otp.interface.js.map +0 -1
- package/src/lib/core/interfaces/session-options.interface.js +0 -9
- package/src/lib/core/interfaces/session-options.interface.js.map +0 -1
- package/src/lib/core/interfaces/token-payload.interface.js +0 -3
- package/src/lib/core/interfaces/token-payload.interface.js.map +0 -1
- package/src/lib/core/providers/apple-auth.provider.js +0 -58
- package/src/lib/core/providers/apple-auth.provider.js.map +0 -1
- package/src/lib/core/providers/base-auth.provider.js +0 -41
- package/src/lib/core/providers/base-auth.provider.js.map +0 -1
- package/src/lib/core/providers/email-auth.provider.js +0 -42
- package/src/lib/core/providers/email-auth.provider.js.map +0 -1
- package/src/lib/core/providers/facebook-auth.provider.js +0 -58
- package/src/lib/core/providers/facebook-auth.provider.js.map +0 -1
- package/src/lib/core/providers/google-auth.provider.js +0 -60
- package/src/lib/core/providers/google-auth.provider.js.map +0 -1
- package/src/lib/core/providers/jwt-auth.provider.js +0 -51
- package/src/lib/core/providers/jwt-auth.provider.js.map +0 -1
- package/src/lib/core/providers/phone-auth.provider.js +0 -45
- package/src/lib/core/providers/phone-auth.provider.js.map +0 -1
- package/src/lib/core/services/auth-provider-registry.service.js +0 -72
- package/src/lib/core/services/auth-provider-registry.service.js.map +0 -1
- package/src/lib/core/services/jwt.service.js +0 -93
- package/src/lib/core/services/jwt.service.js.map +0 -1
- package/src/lib/nest-auth.module.js +0 -118
- package/src/lib/nest-auth.module.js.map +0 -1
- package/src/lib/request-context/request-context.js +0 -108
- package/src/lib/request-context/request-context.js.map +0 -1
- package/src/lib/request-context/request-context.middleware.js +0 -16
- package/src/lib/request-context/request-context.middleware.js.map +0 -1
- package/src/lib/role/entities/permission.entity.js +0 -42
- package/src/lib/role/entities/permission.entity.js.map +0 -1
- package/src/lib/role/entities/role.entity.js +0 -106
- package/src/lib/role/entities/role.entity.js.map +0 -1
- package/src/lib/role/index.js +0 -6
- package/src/lib/role/index.js.map +0 -1
- package/src/lib/role/role.module.js +0 -22
- package/src/lib/role/role.module.js.map +0 -1
- package/src/lib/role/services/role.service.js +0 -220
- package/src/lib/role/services/role.service.js.map +0 -1
- package/src/lib/session/entities/session.entity.js +0 -63
- package/src/lib/session/entities/session.entity.js.map +0 -1
- package/src/lib/session/index.js +0 -8
- package/src/lib/session/index.js.map +0 -1
- package/src/lib/session/services/base-session.service.js +0 -66
- package/src/lib/session/services/base-session.service.js.map +0 -1
- package/src/lib/session/services/database-session.service.js +0 -55
- package/src/lib/session/services/database-session.service.js.map +0 -1
- package/src/lib/session/services/redis-session.service.js +0 -120
- package/src/lib/session/services/redis-session.service.js.map +0 -1
- package/src/lib/session/session.module.js +0 -33
- package/src/lib/session/session.module.js.map +0 -1
- package/src/lib/tenant/entities/tenant.entity.js +0 -44
- package/src/lib/tenant/entities/tenant.entity.js.map +0 -1
- package/src/lib/tenant/events/tenant-created.event.js +0 -10
- package/src/lib/tenant/events/tenant-created.event.js.map +0 -1
- package/src/lib/tenant/events/tenant-deleted.event.js +0 -10
- package/src/lib/tenant/events/tenant-deleted.event.js.map +0 -1
- package/src/lib/tenant/events/tenant-updated.event.js +0 -10
- package/src/lib/tenant/events/tenant-updated.event.js.map +0 -1
- package/src/lib/tenant/index.js +0 -7
- package/src/lib/tenant/index.js.map +0 -1
- package/src/lib/tenant/services/tenant.service.js +0 -136
- package/src/lib/tenant/services/tenant.service.js.map +0 -1
- package/src/lib/tenant/tenant.module.js +0 -27
- package/src/lib/tenant/tenant.module.js.map +0 -1
- package/src/lib/user/dto/requests/update-user.dto.js +0 -24
- package/src/lib/user/dto/requests/update-user.dto.js.map +0 -1
- package/src/lib/user/entities/access-key.entity.js +0 -63
- package/src/lib/user/entities/access-key.entity.js.map +0 -1
- package/src/lib/user/entities/auth-identity.entity.js +0 -47
- package/src/lib/user/entities/auth-identity.entity.js.map +0 -1
- package/src/lib/user/entities/user.entity.js +0 -189
- package/src/lib/user/entities/user.entity.js.map +0 -1
- package/src/lib/user/events/user-created.event.js +0 -10
- package/src/lib/user/events/user-created.event.js.map +0 -1
- package/src/lib/user/events/user-deleted.event.js +0 -10
- package/src/lib/user/events/user-deleted.event.js.map +0 -1
- package/src/lib/user/events/user-registered.event.js +0 -10
- package/src/lib/user/events/user-registered.event.js.map +0 -1
- package/src/lib/user/events/user-updated.event.js +0 -10
- package/src/lib/user/events/user-updated.event.js.map +0 -1
- package/src/lib/user/index.js +0 -8
- package/src/lib/user/index.js.map +0 -1
- package/src/lib/user/services/access-key.service.js +0 -119
- package/src/lib/user/services/access-key.service.js.map +0 -1
- package/src/lib/user/services/user.service.js +0 -217
- package/src/lib/user/services/user.service.js.map +0 -1
- package/src/lib/user/user.module.js +0 -32
- package/src/lib/user/user.module.js.map +0 -1
- package/src/lib/utils/database.utils.js +0 -8
- package/src/lib/utils/database.utils.js.map +0 -1
- package/src/lib/utils/otp.js +0 -7
- package/src/lib/utils/otp.js.map +0 -1
- package/tsconfig.tsbuildinfo +0 -1
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.JwtService = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const common_1 = require("@nestjs/common");
|
|
6
|
-
const jsonwebtoken_1 = tslib_1.__importDefault(require("jsonwebtoken"));
|
|
7
|
-
const auth_constants_1 = require("../../auth.constants");
|
|
8
|
-
const ms_1 = tslib_1.__importDefault(require("ms"));
|
|
9
|
-
let JwtService = class JwtService {
|
|
10
|
-
constructor(options) {
|
|
11
|
-
this.options = options;
|
|
12
|
-
}
|
|
13
|
-
async generateAccessToken(payload) {
|
|
14
|
-
return new Promise((resolve, reject) => {
|
|
15
|
-
jsonwebtoken_1.default.sign({
|
|
16
|
-
...payload,
|
|
17
|
-
type: 'access',
|
|
18
|
-
exp: Math.floor(Date.now() / 1000) + (0, ms_1.default)(this.options.session.sessionExpiry),
|
|
19
|
-
iat: Math.floor(Date.now() / 1000),
|
|
20
|
-
}, this.options.jwt.secret, (err, token) => {
|
|
21
|
-
if (err)
|
|
22
|
-
reject(err);
|
|
23
|
-
else
|
|
24
|
-
resolve(token);
|
|
25
|
-
});
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
async generateRefreshToken(payload) {
|
|
29
|
-
return new Promise((resolve, reject) => {
|
|
30
|
-
jsonwebtoken_1.default.sign({
|
|
31
|
-
...payload,
|
|
32
|
-
type: 'refresh',
|
|
33
|
-
exp: Math.floor(Date.now() / 1000) + (0, ms_1.default)(this.options.session.refreshTokenExpiry),
|
|
34
|
-
iat: Math.floor(Date.now() / 1000),
|
|
35
|
-
}, this.options.jwt.secret, (err, token) => {
|
|
36
|
-
if (err)
|
|
37
|
-
reject(err);
|
|
38
|
-
else
|
|
39
|
-
resolve(token);
|
|
40
|
-
});
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
async verifyToken(token) {
|
|
44
|
-
return new Promise((resolve, reject) => {
|
|
45
|
-
jsonwebtoken_1.default.verify(token, this.options.jwt.secret, (err, decoded) => {
|
|
46
|
-
if (err)
|
|
47
|
-
reject(err);
|
|
48
|
-
else
|
|
49
|
-
resolve(decoded);
|
|
50
|
-
});
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
async generateTokens(payload) {
|
|
54
|
-
const [accessToken, refreshToken] = await Promise.all([
|
|
55
|
-
this.generateAccessToken(payload),
|
|
56
|
-
this.generateRefreshToken(payload),
|
|
57
|
-
]);
|
|
58
|
-
return {
|
|
59
|
-
accessToken,
|
|
60
|
-
refreshToken,
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
updateToken(token, payload) {
|
|
64
|
-
return new Promise((resolve, reject) => {
|
|
65
|
-
const decoded = this.decodeToken(token);
|
|
66
|
-
if (!decoded)
|
|
67
|
-
reject(new Error('Invalid token'));
|
|
68
|
-
else {
|
|
69
|
-
jsonwebtoken_1.default.sign({ ...decoded, ...payload }, this.options.jwt.secret, { expiresIn: this.options.session.sessionExpiry }, (err, token) => {
|
|
70
|
-
if (err)
|
|
71
|
-
reject(err);
|
|
72
|
-
else
|
|
73
|
-
resolve(token);
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
decodeToken(token) {
|
|
79
|
-
try {
|
|
80
|
-
return jsonwebtoken_1.default.decode(token);
|
|
81
|
-
}
|
|
82
|
-
catch (error) {
|
|
83
|
-
return null;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
};
|
|
87
|
-
exports.JwtService = JwtService;
|
|
88
|
-
exports.JwtService = JwtService = tslib_1.__decorate([
|
|
89
|
-
(0, common_1.Injectable)(),
|
|
90
|
-
tslib_1.__param(0, (0, common_1.Inject)(auth_constants_1.AUTH_MODULE_OPTIONS)),
|
|
91
|
-
tslib_1.__metadata("design:paramtypes", [Object])
|
|
92
|
-
], JwtService);
|
|
93
|
-
//# sourceMappingURL=jwt.service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"jwt.service.js","sourceRoot":"","sources":["../../../../../../../packages/nest-auth/src/lib/core/services/jwt.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var NestAuthModule_1;
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.NestAuthModule = void 0;
|
|
5
|
-
const tslib_1 = require("tslib");
|
|
6
|
-
const common_1 = require("@nestjs/common");
|
|
7
|
-
const typeorm_1 = require("@nestjs/typeorm");
|
|
8
|
-
const core_1 = require("./core");
|
|
9
|
-
const event_emitter_1 = require("@nestjs/event-emitter");
|
|
10
|
-
const request_context_middleware_1 = require("./request-context/request-context.middleware");
|
|
11
|
-
const auth_module_1 = require("./auth/auth.module");
|
|
12
|
-
const user_module_1 = require("./user/user.module");
|
|
13
|
-
const role_module_1 = require("./role/role.module");
|
|
14
|
-
const session_module_1 = require("./session/session.module");
|
|
15
|
-
const tenant_module_1 = require("./tenant/tenant.module");
|
|
16
|
-
const mfa_options_interface_1 = require("./core/interfaces/mfa-options.interface");
|
|
17
|
-
const core_module_1 = require("./core/core.module");
|
|
18
|
-
const deepmerge_1 = tslib_1.__importDefault(require("deepmerge"));
|
|
19
|
-
let NestAuthModule = NestAuthModule_1 = class NestAuthModule {
|
|
20
|
-
static forRoot(options) {
|
|
21
|
-
const mergedOptions = this.getOptions(options);
|
|
22
|
-
return {
|
|
23
|
-
module: NestAuthModule_1,
|
|
24
|
-
imports: [
|
|
25
|
-
core_module_1.CoreModule.forRoot(mergedOptions),
|
|
26
|
-
auth_module_1.AuthModule,
|
|
27
|
-
tenant_module_1.TenantModule,
|
|
28
|
-
user_module_1.UserModule,
|
|
29
|
-
role_module_1.RoleModule,
|
|
30
|
-
session_module_1.SessionModule,
|
|
31
|
-
],
|
|
32
|
-
exports: [
|
|
33
|
-
core_module_1.CoreModule,
|
|
34
|
-
auth_module_1.AuthModule,
|
|
35
|
-
tenant_module_1.TenantModule,
|
|
36
|
-
user_module_1.UserModule,
|
|
37
|
-
role_module_1.RoleModule,
|
|
38
|
-
session_module_1.SessionModule,
|
|
39
|
-
],
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
static forRootAsync(options) {
|
|
43
|
-
return {
|
|
44
|
-
module: NestAuthModule_1,
|
|
45
|
-
imports: [
|
|
46
|
-
core_module_1.CoreModule.forRoot(options.useFactory()),
|
|
47
|
-
auth_module_1.AuthModule,
|
|
48
|
-
user_module_1.UserModule,
|
|
49
|
-
role_module_1.RoleModule,
|
|
50
|
-
session_module_1.SessionModule,
|
|
51
|
-
...options.imports || [],
|
|
52
|
-
],
|
|
53
|
-
exports: [
|
|
54
|
-
core_module_1.CoreModule,
|
|
55
|
-
auth_module_1.AuthModule,
|
|
56
|
-
user_module_1.UserModule,
|
|
57
|
-
role_module_1.RoleModule,
|
|
58
|
-
session_module_1.SessionModule,
|
|
59
|
-
],
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
static getOptions(options) {
|
|
63
|
-
return (0, deepmerge_1.default)(this.moduleDefaultOptions, options);
|
|
64
|
-
}
|
|
65
|
-
configure(consumer) {
|
|
66
|
-
consumer.apply(request_context_middleware_1.RequestContextMiddleware).forRoutes('auth/*');
|
|
67
|
-
}
|
|
68
|
-
};
|
|
69
|
-
exports.NestAuthModule = NestAuthModule;
|
|
70
|
-
NestAuthModule.moduleDefaultOptions = {
|
|
71
|
-
passwordResetOtpExpiresIn: '15m',
|
|
72
|
-
session: {
|
|
73
|
-
storageType: core_1.SessionStorageType.DATABASE,
|
|
74
|
-
sessionExpiry: '1h',
|
|
75
|
-
refreshTokenExpiry: '30d',
|
|
76
|
-
},
|
|
77
|
-
jwt: {
|
|
78
|
-
secret: 'secret',
|
|
79
|
-
},
|
|
80
|
-
accessTokenType: 'header',
|
|
81
|
-
cookieOptions: {
|
|
82
|
-
httpOnly: true,
|
|
83
|
-
secure: false,
|
|
84
|
-
},
|
|
85
|
-
emailAuth: {
|
|
86
|
-
enabled: true,
|
|
87
|
-
},
|
|
88
|
-
mfa: {
|
|
89
|
-
enabled: false,
|
|
90
|
-
methods: [mfa_options_interface_1.MFAMethodEnum.EMAIL, mfa_options_interface_1.MFAMethodEnum.TOTP],
|
|
91
|
-
allowUserToggle: true,
|
|
92
|
-
allowMethodSelection: true,
|
|
93
|
-
otpLength: 6,
|
|
94
|
-
otpExpiresIn: '15m',
|
|
95
|
-
},
|
|
96
|
-
};
|
|
97
|
-
exports.NestAuthModule = NestAuthModule = NestAuthModule_1 = tslib_1.__decorate([
|
|
98
|
-
(0, common_1.Module)({
|
|
99
|
-
imports: [
|
|
100
|
-
typeorm_1.TypeOrmModule.forFeature(core_1.NestAuthEntities),
|
|
101
|
-
event_emitter_1.EventEmitterModule,
|
|
102
|
-
core_module_1.CoreModule,
|
|
103
|
-
auth_module_1.AuthModule,
|
|
104
|
-
tenant_module_1.TenantModule,
|
|
105
|
-
user_module_1.UserModule,
|
|
106
|
-
role_module_1.RoleModule,
|
|
107
|
-
session_module_1.SessionModule,
|
|
108
|
-
],
|
|
109
|
-
exports: [
|
|
110
|
-
auth_module_1.AuthModule,
|
|
111
|
-
tenant_module_1.TenantModule,
|
|
112
|
-
user_module_1.UserModule,
|
|
113
|
-
role_module_1.RoleModule,
|
|
114
|
-
session_module_1.SessionModule,
|
|
115
|
-
],
|
|
116
|
-
})
|
|
117
|
-
], NestAuthModule);
|
|
118
|
-
//# sourceMappingURL=nest-auth.module.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"nest-auth.module.js","sourceRoot":"","sources":["../../../../../packages/nest-auth/src/lib/nest-auth.module.ts"],"names":[],"mappings":";;;;;AAAA,2CAA2E;AAC3E,6CAAgD;AAChD,iCAA8D;AAE9D,yDAA2D;AAC3D,6FAAwF;AACxF,oDAAgD;AAChD,oDAAgD;AAChD,oDAAgD;AAChD,6DAAyD;AACzD,0DAAsD;AACtD,mFAAwE;AACxE,oDAAgD;AAChD,kEAAkC;AAqB3B,IAAM,cAAc,sBAApB,MAAM,cAAc;IA6BzB,MAAM,CAAC,OAAO,CAAC,OAA0B;QACvC,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAE/C,OAAO;YACL,MAAM,EAAE,gBAAc;YACtB,OAAO,EAAE;gBACP,wBAAU,CAAC,OAAO,CAAC,aAAa,CAAC;gBACjC,wBAAU;gBACV,4BAAY;gBACZ,wBAAU;gBACV,wBAAU;gBACV,8BAAa;aACd;YACD,OAAO,EAAE;gBACP,wBAAU;gBACV,wBAAU;gBACV,4BAAY;gBACZ,wBAAU;gBACV,wBAAU;gBACV,8BAAa;aACd;SACF,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,OAA+B;QACjD,OAAO;YACL,MAAM,EAAE,gBAAc;YACtB,OAAO,EAAE;gBACP,wBAAU,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAuB,CAAC;gBAC7D,wBAAU;gBACV,wBAAU;gBACV,wBAAU;gBACV,8BAAa;gBACb,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE;aACzB;YACD,OAAO,EAAE;gBACP,wBAAU;gBACV,wBAAU;gBACV,wBAAU;gBACV,wBAAU;gBACV,8BAAa;aACd;SACF,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,UAAU,CAAC,OAA0B;QAClD,OAAO,IAAA,mBAAS,EAAC,IAAI,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IAED,SAAS,CAAC,QAA4B;QACpC,QAAQ,CAAC,KAAK,CAAC,qDAAwB,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC/D,CAAC;;AAhFU,wCAAc;AAClB,mCAAoB,GAA+B;IACxD,yBAAyB,EAAE,KAAK;IAChC,OAAO,EAAE;QACP,WAAW,EAAE,yBAAkB,CAAC,QAAQ;QACxC,aAAa,EAAE,IAAI;QACnB,kBAAkB,EAAE,KAAK;KAC1B;IACD,GAAG,EAAE;QACH,MAAM,EAAE,QAAQ;KACjB;IACD,eAAe,EAAE,QAAQ;IACzB,aAAa,EAAE;QACb,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,KAAK;KACd;IACD,SAAS,EAAE;QACT,OAAO,EAAE,IAAI;KACd;IACD,GAAG,EAAE;QACH,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,CAAC,qCAAa,CAAC,KAAK,EAAE,qCAAa,CAAC,IAAI,CAAC;QAClD,eAAe,EAAE,IAAI;QACrB,oBAAoB,EAAE,IAAI;QAC1B,SAAS,EAAE,CAAC;QACZ,YAAY,EAAE,KAAK;KACpB;CACF,AA1B0B,CA0BzB;yBA3BS,cAAc;IAnB1B,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,uBAAa,CAAC,UAAU,CAAC,uBAAgB,CAAC;YAC1C,kCAAkB;YAClB,wBAAU;YACV,wBAAU;YACV,4BAAY;YACZ,wBAAU;YACV,wBAAU;YACV,8BAAa;SACd;QACD,OAAO,EAAE;YACP,wBAAU;YACV,4BAAY;YACZ,wBAAU;YACV,wBAAU;YACV,8BAAa;SACd;KACF,CAAC;GACW,cAAc,CAiF1B"}
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RequestContext = void 0;
|
|
4
|
-
const async_hooks_1 = require("async_hooks");
|
|
5
|
-
class RequestContext {
|
|
6
|
-
constructor(request, response) {
|
|
7
|
-
this.id = Math.random();
|
|
8
|
-
this.request = request;
|
|
9
|
-
this.response = response;
|
|
10
|
-
}
|
|
11
|
-
static create(request, response, next) {
|
|
12
|
-
const context = new RequestContext(request, response);
|
|
13
|
-
RequestContext.storage.run(context, () => next());
|
|
14
|
-
}
|
|
15
|
-
static current() {
|
|
16
|
-
return RequestContext.storage.getStore();
|
|
17
|
-
}
|
|
18
|
-
static currentRequest() {
|
|
19
|
-
const requestContext = RequestContext.current();
|
|
20
|
-
return requestContext ? requestContext.request : null;
|
|
21
|
-
}
|
|
22
|
-
static currentUser() {
|
|
23
|
-
const request = RequestContext.currentRequest();
|
|
24
|
-
if (!request['user']) {
|
|
25
|
-
return null;
|
|
26
|
-
}
|
|
27
|
-
return {
|
|
28
|
-
id: request['user'].sub,
|
|
29
|
-
...request['user']
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
static currentSession() {
|
|
33
|
-
const request = RequestContext.currentRequest();
|
|
34
|
-
return request ? request['session'] : null;
|
|
35
|
-
}
|
|
36
|
-
static getDeviceInfo() {
|
|
37
|
-
return {
|
|
38
|
-
deviceName: this.getDeviceName(),
|
|
39
|
-
ipAddress: this.getIpAddress(),
|
|
40
|
-
browser: this.getBrowser(),
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
static getDeviceName() {
|
|
44
|
-
const request = this.currentRequest();
|
|
45
|
-
if (!request) {
|
|
46
|
-
return 'Unknown Device';
|
|
47
|
-
}
|
|
48
|
-
const userAgent = request.headers['user-agent'] || 'unknown';
|
|
49
|
-
if (userAgent.includes('Windows')) {
|
|
50
|
-
return 'Windows';
|
|
51
|
-
}
|
|
52
|
-
else if (userAgent.includes('Macintosh')) {
|
|
53
|
-
return 'Mac';
|
|
54
|
-
}
|
|
55
|
-
else if (userAgent.includes('Linux')) {
|
|
56
|
-
return 'Linux';
|
|
57
|
-
}
|
|
58
|
-
else if (userAgent.includes('Android')) {
|
|
59
|
-
return 'Android';
|
|
60
|
-
}
|
|
61
|
-
else if (userAgent.includes('iPhone') || userAgent.includes('iPad')) {
|
|
62
|
-
return 'iOS';
|
|
63
|
-
}
|
|
64
|
-
return 'Unknown Device';
|
|
65
|
-
}
|
|
66
|
-
static getBrowser() {
|
|
67
|
-
const request = this.currentRequest();
|
|
68
|
-
if (!request) {
|
|
69
|
-
return 'unknown';
|
|
70
|
-
}
|
|
71
|
-
const userAgent = request.headers['user-agent'] || 'unknown';
|
|
72
|
-
if (userAgent.includes('Chrome') && !userAgent.includes('Chromium')) {
|
|
73
|
-
return 'Chrome';
|
|
74
|
-
}
|
|
75
|
-
if (userAgent.includes('Firefox')) {
|
|
76
|
-
return 'Firefox';
|
|
77
|
-
}
|
|
78
|
-
if (userAgent.includes('Safari') && !userAgent.includes('Chrome')) {
|
|
79
|
-
return 'Safari';
|
|
80
|
-
}
|
|
81
|
-
if (userAgent.includes('Edg')) {
|
|
82
|
-
return 'Edge';
|
|
83
|
-
}
|
|
84
|
-
if (userAgent.includes('Opera') || userAgent.includes('OPR')) {
|
|
85
|
-
return 'Opera';
|
|
86
|
-
}
|
|
87
|
-
if (userAgent.includes('MSIE') || userAgent.includes('Trident/')) {
|
|
88
|
-
return 'Internet Explorer';
|
|
89
|
-
}
|
|
90
|
-
if (userAgent.includes('Brave')) {
|
|
91
|
-
return 'Brave';
|
|
92
|
-
}
|
|
93
|
-
return 'Unknown Browser';
|
|
94
|
-
}
|
|
95
|
-
static getIpAddress() {
|
|
96
|
-
const request = this.currentRequest();
|
|
97
|
-
if (request) {
|
|
98
|
-
return request.ip ||
|
|
99
|
-
request.headers['x-forwarded-for']?.toString() ||
|
|
100
|
-
request.connection.remoteAddress ||
|
|
101
|
-
'unknown';
|
|
102
|
-
}
|
|
103
|
-
return 'unknown';
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
exports.RequestContext = RequestContext;
|
|
107
|
-
RequestContext.storage = new async_hooks_1.AsyncLocalStorage();
|
|
108
|
-
//# sourceMappingURL=request-context.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"request-context.js","sourceRoot":"","sources":["../../../../../../packages/nest-auth/src/lib/request-context/request-context.ts"],"names":[],"mappings":";;;AAAA,6CAAgD;AAIhD,MAAa,cAAc;IAUvB,YAAoB,OAAgB,EAAE,QAAkB;QACpD,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAEM,MAAM,CAAC,MAAM,CAChB,OAAgB,EAChB,QAAkB,EAClB,IAAgB;QAEhB,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACtD,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC;IAEM,MAAM,CAAC,OAAO;QACjB,OAAO,cAAc,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC7C,CAAC;IAEM,MAAM,CAAC,cAAc;QACxB,MAAM,cAAc,GAAG,cAAc,CAAC,OAAO,EAAE,CAAC;QAChD,OAAO,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1D,CAAC;IAEM,MAAM,CAAC,WAAW;QACrB,MAAM,OAAO,GAAG,cAAc,CAAC,cAAc,EAAE,CAAC;QAChD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO;YACH,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG;YACvB,GAAG,OAAO,CAAC,MAAM,CAAC;SACF,CAAC;IACzB,CAAC;IAEM,MAAM,CAAC,cAAc;QACxB,MAAM,OAAO,GAAG,cAAc,CAAC,cAAc,EAAE,CAAC;QAChD,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/C,CAAC;IAEM,MAAM,CAAC,aAAa;QACvB,OAAO;YACH,UAAU,EAAE,IAAI,CAAC,aAAa,EAAE;YAChC,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE;YAC9B,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;SAC7B,CAAC;IACN,CAAC;IAEO,MAAM,CAAC,aAAa;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACtC,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO,gBAAgB,CAAC;QAC5B,CAAC;QACD,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,SAAS,CAAC;QAC7D,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAChC,OAAO,SAAS,CAAC;QACrB,CAAC;aAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YACzC,OAAO,KAAK,CAAC;QACjB,CAAC;aAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACrC,OAAO,OAAO,CAAC;QACnB,CAAC;aAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACvC,OAAO,SAAS,CAAC;QACrB,CAAC;aAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACpE,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IAEO,MAAM,CAAC,UAAU;QACrB,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACtC,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,SAAS,CAAC;QAG7D,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YAClE,OAAO,QAAQ,CAAC;QACpB,CAAC;QAED,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAChC,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChE,OAAO,QAAQ,CAAC;QACpB,CAAC;QAED,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,MAAM,CAAC;QAClB,CAAC;QAED,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3D,OAAO,OAAO,CAAC;QACnB,CAAC;QAED,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/D,OAAO,mBAAmB,CAAC;QAC/B,CAAC;QAED,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9B,OAAO,OAAO,CAAC;QACnB,CAAC;QAED,OAAO,iBAAiB,CAAC;IAC7B,CAAC;IAEO,MAAM,CAAC,YAAY;QACvB,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACtC,IAAI,OAAO,EAAE,CAAC;YACV,OAAO,OAAO,CAAC,EAAE;gBACb,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE;gBAC9C,OAAO,CAAC,UAAU,CAAC,aAAa;gBAChC,SAAS,CAAC;QAClB,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;;AA9HL,wCA+HC;AA7HkB,sBAAO,GAAG,IAAI,+BAAiB,EAAkB,CAAC"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RequestContextMiddleware = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const common_1 = require("@nestjs/common");
|
|
6
|
-
const request_context_1 = require("./request-context");
|
|
7
|
-
let RequestContextMiddleware = class RequestContextMiddleware {
|
|
8
|
-
use(req, res, next) {
|
|
9
|
-
request_context_1.RequestContext.create(req, res, next);
|
|
10
|
-
}
|
|
11
|
-
};
|
|
12
|
-
exports.RequestContextMiddleware = RequestContextMiddleware;
|
|
13
|
-
exports.RequestContextMiddleware = RequestContextMiddleware = tslib_1.__decorate([
|
|
14
|
-
(0, common_1.Injectable)()
|
|
15
|
-
], RequestContextMiddleware);
|
|
16
|
-
//# sourceMappingURL=request-context.middleware.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"request-context.middleware.js","sourceRoot":"","sources":["../../../../../../packages/nest-auth/src/lib/request-context/request-context.middleware.ts"],"names":[],"mappings":";;;;AAAA,2CAA4D;AAE5D,uDAAmD;AAI5C,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;IAEjC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI;QACd,gCAAc,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;CAEJ,CAAA;AANY,4DAAwB;mCAAxB,wBAAwB;IADpC,IAAA,mBAAU,GAAE;GACA,wBAAwB,CAMpC"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Permission = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const typeorm_1 = require("typeorm");
|
|
6
|
-
const role_entity_1 = require("./role.entity");
|
|
7
|
-
const auth_constants_1 = require("../../auth.constants");
|
|
8
|
-
let Permission = class Permission extends typeorm_1.BaseEntity {
|
|
9
|
-
};
|
|
10
|
-
exports.Permission = Permission;
|
|
11
|
-
tslib_1.__decorate([
|
|
12
|
-
(0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
|
|
13
|
-
tslib_1.__metadata("design:type", String)
|
|
14
|
-
], Permission.prototype, "id", void 0);
|
|
15
|
-
tslib_1.__decorate([
|
|
16
|
-
(0, typeorm_1.Column)(),
|
|
17
|
-
tslib_1.__metadata("design:type", String)
|
|
18
|
-
], Permission.prototype, "name", void 0);
|
|
19
|
-
tslib_1.__decorate([
|
|
20
|
-
(0, typeorm_1.Column)({ nullable: true }),
|
|
21
|
-
tslib_1.__metadata("design:type", String)
|
|
22
|
-
], Permission.prototype, "description", void 0);
|
|
23
|
-
tslib_1.__decorate([
|
|
24
|
-
(0, typeorm_1.Column)({ nullable: true, default: auth_constants_1.DEFAULT_GUARD_NAME }),
|
|
25
|
-
tslib_1.__metadata("design:type", String)
|
|
26
|
-
], Permission.prototype, "guard", void 0);
|
|
27
|
-
tslib_1.__decorate([
|
|
28
|
-
(0, typeorm_1.CreateDateColumn)(),
|
|
29
|
-
tslib_1.__metadata("design:type", Date)
|
|
30
|
-
], Permission.prototype, "createdAt", void 0);
|
|
31
|
-
tslib_1.__decorate([
|
|
32
|
-
(0, typeorm_1.UpdateDateColumn)(),
|
|
33
|
-
tslib_1.__metadata("design:type", Date)
|
|
34
|
-
], Permission.prototype, "updatedAt", void 0);
|
|
35
|
-
tslib_1.__decorate([
|
|
36
|
-
(0, typeorm_1.ManyToMany)(() => role_entity_1.Role, role => role.permissions),
|
|
37
|
-
tslib_1.__metadata("design:type", Array)
|
|
38
|
-
], Permission.prototype, "roles", void 0);
|
|
39
|
-
exports.Permission = Permission = tslib_1.__decorate([
|
|
40
|
-
(0, typeorm_1.Entity)('nest_auth_permissions')
|
|
41
|
-
], Permission);
|
|
42
|
-
//# sourceMappingURL=permission.entity.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"permission.entity.js","sourceRoot":"","sources":["../../../../../../../packages/nest-auth/src/lib/role/entities/permission.entity.ts"],"names":[],"mappings":";;;;AAAA,qCAA6H;AAC7H,+CAAqC;AACrC,yDAA0D;AAGnD,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,oBAAU;CAqBzC,CAAA;AArBY,gCAAU;AAEnB;IADC,IAAA,gCAAsB,EAAC,MAAM,CAAC;;sCACpB;AAGX;IADC,IAAA,gBAAM,GAAE;;wCACI;AAGb;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+CACP;AAGpB;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,mCAAkB,EAAE,CAAC;;yCAC1C;AAGd;IADC,IAAA,0BAAgB,GAAE;sCACR,IAAI;6CAAC;AAGhB;IADC,IAAA,0BAAgB,GAAE;sCACR,IAAI;6CAAC;AAGhB;IADC,IAAA,oBAAU,EAAC,GAAG,EAAE,CAAC,kBAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC;;yCACnC;qBApBL,UAAU;IADtB,IAAA,gBAAM,EAAC,uBAAuB,CAAC;GACnB,UAAU,CAqBtB"}
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var Role_1;
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.Role = void 0;
|
|
5
|
-
const tslib_1 = require("tslib");
|
|
6
|
-
const typeorm_1 = require("typeorm");
|
|
7
|
-
const lodash_1 = require("lodash");
|
|
8
|
-
const auth_constants_1 = require("../../auth.constants");
|
|
9
|
-
const tenant_entity_1 = require("../../tenant/entities/tenant.entity");
|
|
10
|
-
const common_1 = require("@nestjs/common");
|
|
11
|
-
const user_entity_1 = require("../../user/entities/user.entity");
|
|
12
|
-
const permission_entity_1 = require("./permission.entity");
|
|
13
|
-
let Role = Role_1 = class Role extends typeorm_1.BaseEntity {
|
|
14
|
-
static async createRole(name, guard = auth_constants_1.DEFAULT_GUARD_NAME, isSystem = false, tenantId) {
|
|
15
|
-
const existingSystemRole = await Role_1.findOne({
|
|
16
|
-
where: { name, isSystem: true }
|
|
17
|
-
});
|
|
18
|
-
if (existingSystemRole) {
|
|
19
|
-
throw new common_1.ConflictException(`Cannot create role with name '${name}' as it conflicts with a system role`);
|
|
20
|
-
}
|
|
21
|
-
const role = new Role_1();
|
|
22
|
-
role.name = name;
|
|
23
|
-
role.guard = guard;
|
|
24
|
-
role.isSystem = isSystem;
|
|
25
|
-
role.tenantId = isSystem ? null : tenantId;
|
|
26
|
-
await role.save();
|
|
27
|
-
return role;
|
|
28
|
-
}
|
|
29
|
-
async syncPermissions(permissionIds) {
|
|
30
|
-
const newPermissions = Array.isArray(permissionIds) ? permissionIds : [permissionIds];
|
|
31
|
-
this.permissions = newPermissions.map(permissionId => permission_entity_1.Permission.create({
|
|
32
|
-
id: permissionId,
|
|
33
|
-
}));
|
|
34
|
-
}
|
|
35
|
-
async removePermissions(permissionIds) {
|
|
36
|
-
const removingPermissions = Array.isArray(permissionIds) ? permissionIds : [permissionIds];
|
|
37
|
-
this.permissions = this.permissions.filter(permission => !removingPermissions.includes(permission.id));
|
|
38
|
-
}
|
|
39
|
-
async attachPermissions(permissionsIds) {
|
|
40
|
-
const existingPermissions = await this.permissions.map(permission => permission_entity_1.Permission.create({
|
|
41
|
-
id: permission.id,
|
|
42
|
-
}));
|
|
43
|
-
const newPermissions = Array.isArray(permissionsIds) ? permissionsIds : [permissionsIds];
|
|
44
|
-
const newPermissionsEntities = newPermissions.map(permissionId => permission_entity_1.Permission.create({
|
|
45
|
-
id: permissionId,
|
|
46
|
-
}));
|
|
47
|
-
this.permissions = (0, lodash_1.uniqBy)([...existingPermissions, ...newPermissionsEntities], 'id');
|
|
48
|
-
}
|
|
49
|
-
};
|
|
50
|
-
exports.Role = Role;
|
|
51
|
-
tslib_1.__decorate([
|
|
52
|
-
(0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
|
|
53
|
-
tslib_1.__metadata("design:type", String)
|
|
54
|
-
], Role.prototype, "id", void 0);
|
|
55
|
-
tslib_1.__decorate([
|
|
56
|
-
(0, typeorm_1.Column)(),
|
|
57
|
-
tslib_1.__metadata("design:type", String)
|
|
58
|
-
], Role.prototype, "name", void 0);
|
|
59
|
-
tslib_1.__decorate([
|
|
60
|
-
(0, typeorm_1.Column)({ nullable: true, default: auth_constants_1.DEFAULT_GUARD_NAME }),
|
|
61
|
-
tslib_1.__metadata("design:type", String)
|
|
62
|
-
], Role.prototype, "guard", void 0);
|
|
63
|
-
tslib_1.__decorate([
|
|
64
|
-
(0, typeorm_1.Column)({ nullable: true }),
|
|
65
|
-
(0, typeorm_1.RelationId)((role) => role.tenant),
|
|
66
|
-
tslib_1.__metadata("design:type", String)
|
|
67
|
-
], Role.prototype, "tenantId", void 0);
|
|
68
|
-
tslib_1.__decorate([
|
|
69
|
-
(0, typeorm_1.ManyToOne)(() => tenant_entity_1.Tenant),
|
|
70
|
-
tslib_1.__metadata("design:type", tenant_entity_1.Tenant)
|
|
71
|
-
], Role.prototype, "tenant", void 0);
|
|
72
|
-
tslib_1.__decorate([
|
|
73
|
-
(0, typeorm_1.Column)({ default: false }),
|
|
74
|
-
tslib_1.__metadata("design:type", Boolean)
|
|
75
|
-
], Role.prototype, "isSystem", void 0);
|
|
76
|
-
tslib_1.__decorate([
|
|
77
|
-
(0, typeorm_1.Column)({ default: true }),
|
|
78
|
-
tslib_1.__metadata("design:type", Boolean)
|
|
79
|
-
], Role.prototype, "isActive", void 0);
|
|
80
|
-
tslib_1.__decorate([
|
|
81
|
-
(0, typeorm_1.CreateDateColumn)(),
|
|
82
|
-
tslib_1.__metadata("design:type", Date)
|
|
83
|
-
], Role.prototype, "createdAt", void 0);
|
|
84
|
-
tslib_1.__decorate([
|
|
85
|
-
(0, typeorm_1.UpdateDateColumn)(),
|
|
86
|
-
tslib_1.__metadata("design:type", Date)
|
|
87
|
-
], Role.prototype, "updatedAt", void 0);
|
|
88
|
-
tslib_1.__decorate([
|
|
89
|
-
(0, typeorm_1.ManyToMany)(() => permission_entity_1.Permission, permission => permission.roles),
|
|
90
|
-
(0, typeorm_1.JoinTable)({
|
|
91
|
-
name: 'nest_auth_role_nest_auth_permissions'
|
|
92
|
-
}),
|
|
93
|
-
tslib_1.__metadata("design:type", Array)
|
|
94
|
-
], Role.prototype, "permissions", void 0);
|
|
95
|
-
tslib_1.__decorate([
|
|
96
|
-
(0, typeorm_1.ManyToMany)(() => user_entity_1.User, user => user.roles),
|
|
97
|
-
(0, typeorm_1.JoinTable)({
|
|
98
|
-
name: 'nest_auth_role_nest_auth_users'
|
|
99
|
-
}),
|
|
100
|
-
tslib_1.__metadata("design:type", Array)
|
|
101
|
-
], Role.prototype, "users", void 0);
|
|
102
|
-
exports.Role = Role = Role_1 = tslib_1.__decorate([
|
|
103
|
-
(0, typeorm_1.Entity)('nest_auth_roles'),
|
|
104
|
-
(0, typeorm_1.Unique)(['name', 'guard', 'tenantId'])
|
|
105
|
-
], Role);
|
|
106
|
-
//# sourceMappingURL=role.entity.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"role.entity.js","sourceRoot":"","sources":["../../../../../../../packages/nest-auth/src/lib/role/entities/role.entity.ts"],"names":[],"mappings":"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"}
|
package/src/lib/role/index.js
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const tslib_1 = require("tslib");
|
|
4
|
-
tslib_1.__exportStar(require("./services/role.service"), exports);
|
|
5
|
-
tslib_1.__exportStar(require("./role.module"), exports);
|
|
6
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/nest-auth/src/lib/role/index.ts"],"names":[],"mappings":";;;AAOA,kEAAwC;AAGxC,wDAA8B"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RoleModule = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const common_1 = require("@nestjs/common");
|
|
6
|
-
const typeorm_1 = require("@nestjs/typeorm");
|
|
7
|
-
const role_entity_1 = require("./entities/role.entity");
|
|
8
|
-
const permission_entity_1 = require("./entities/permission.entity");
|
|
9
|
-
const role_service_1 = require("./services/role.service");
|
|
10
|
-
let RoleModule = class RoleModule {
|
|
11
|
-
};
|
|
12
|
-
exports.RoleModule = RoleModule;
|
|
13
|
-
exports.RoleModule = RoleModule = tslib_1.__decorate([
|
|
14
|
-
(0, common_1.Module)({
|
|
15
|
-
imports: [
|
|
16
|
-
typeorm_1.TypeOrmModule.forFeature([role_entity_1.Role, permission_entity_1.Permission]),
|
|
17
|
-
],
|
|
18
|
-
providers: [role_service_1.RoleService],
|
|
19
|
-
exports: [role_service_1.RoleService],
|
|
20
|
-
})
|
|
21
|
-
], RoleModule);
|
|
22
|
-
//# sourceMappingURL=role.module.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"role.module.js","sourceRoot":"","sources":["../../../../../../packages/nest-auth/src/lib/role/role.module.ts"],"names":[],"mappings":";;;;AAAA,2CAAwC;AACxC,6CAAgD;AAChD,wDAA8C;AAC9C,oEAA0D;AAC1D,0DAAsD;AAS/C,IAAM,UAAU,GAAhB,MAAM,UAAU;CAAI,CAAA;AAAd,gCAAU;qBAAV,UAAU;IAPtB,IAAA,eAAM,EAAC;QACJ,OAAO,EAAE;YACL,uBAAa,CAAC,UAAU,CAAC,CAAC,kBAAI,EAAE,8BAAU,CAAC,CAAC;SAC/C;QACD,SAAS,EAAE,CAAC,0BAAW,CAAC;QACxB,OAAO,EAAE,CAAC,0BAAW,CAAC;KACzB,CAAC;GACW,UAAU,CAAI"}
|