@evara-group/guard 3.0.11 → 3.0.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/dist/core/enums/user-permission.d.ts +7 -1
- package/dist/core/enums/user-permission.js +6 -0
- package/dist/core/enums/user-permission.js.map +1 -1
- package/dist/core/utils/throttler-exception-filter.d.ts +7 -0
- package/dist/core/utils/throttler-exception-filter.js +48 -0
- package/dist/core/utils/throttler-exception-filter.js.map +1 -0
- package/dist/database/seeders/permissions.seeder.js +4 -3
- package/dist/database/seeders/permissions.seeder.js.map +1 -1
- package/dist/dev-server.d.ts +1 -0
- package/dist/dev-server.js +72 -0
- package/dist/dev-server.js.map +1 -0
- package/dist/modules/app.module.d.ts +8 -0
- package/dist/modules/app.module.js +31 -0
- package/dist/modules/app.module.js.map +1 -1
- package/dist/modules/auth/auth.controller.d.ts +5 -0
- package/dist/modules/auth/auth.controller.js +46 -0
- package/dist/modules/auth/auth.controller.js.map +1 -1
- package/dist/modules/auth/auth.service.d.ts +9 -1
- package/dist/modules/auth/auth.service.js +66 -2
- package/dist/modules/auth/auth.service.js.map +1 -1
- package/dist/modules/auth/dto/auth-forget-password.dto.d.ts +3 -0
- package/dist/modules/auth/dto/auth-forget-password.dto.js +29 -0
- package/dist/modules/auth/dto/auth-forget-password.dto.js.map +1 -0
- package/dist/modules/auth/dto/reset-password.dto.d.ts +4 -0
- package/dist/modules/auth/dto/reset-password.dto.js +32 -0
- package/dist/modules/auth/dto/reset-password.dto.js.map +1 -0
- package/dist/modules/mail/dto/mail-metadata.dto.d.ts +6 -0
- package/dist/modules/mail/dto/mail-metadata.dto.js +38 -0
- package/dist/modules/mail/dto/mail-metadata.dto.js.map +1 -0
- package/dist/modules/mail/mail.module.d.ts +12 -0
- package/dist/modules/mail/mail.module.js +57 -0
- package/dist/modules/mail/mail.module.js.map +1 -0
- package/dist/modules/mail/mail.service.d.ts +10 -0
- package/dist/modules/mail/mail.service.js +60 -0
- package/dist/modules/mail/mail.service.js.map +1 -0
- package/dist/modules/mail/templates/ar/reset-password.ejs +36 -0
- package/dist/modules/mail/templates/en/reset-password.ejs +38 -0
- package/dist/modules/module/dtos/create-module.dto.d.ts +1 -1
- package/dist/modules/module/dtos/update-module.dto.d.ts +1 -1
- package/dist/modules/role/dtos/create-role.dto.d.ts +1 -1
- package/dist/modules/role/role.controller.js +3 -0
- package/dist/modules/role/role.controller.js.map +1 -1
- package/dist/modules/user/dtos/create-user.dto.d.ts +1 -1
- package/dist/modules/user/user.controller.d.ts +3 -1
- package/dist/modules/user/user.controller.js +13 -2
- package/dist/modules/user/user.controller.js.map +1 -1
- package/dist/security/guards/language.guard.d.ts +4 -0
- package/dist/security/guards/language.guard.js +25 -0
- package/dist/security/guards/language.guard.js.map +1 -0
- package/dist/security/transformers/lower-case.transformer.d.ts +3 -0
- package/dist/security/transformers/lower-case.transformer.js +6 -0
- package/dist/security/transformers/lower-case.transformer.js.map +1 -0
- package/dist/security/transformers/remove-spaces.transformer.d.ts +3 -0
- package/dist/security/transformers/remove-spaces.transformer.js +6 -0
- package/dist/security/transformers/remove-spaces.transformer.js.map +1 -0
- package/dist/security/validators/strong-password.validator.d.ts +1 -0
- package/dist/security/validators/strong-password.validator.js +10 -0
- package/dist/security/validators/strong-password.validator.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +7 -3
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.MailMetaDataDTO = void 0;
|
|
13
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
14
|
+
const class_validator_1 = require("class-validator");
|
|
15
|
+
const locale_1 = require("../../../core/enums/locale");
|
|
16
|
+
class MailMetaDataDTO {
|
|
17
|
+
}
|
|
18
|
+
exports.MailMetaDataDTO = MailMetaDataDTO;
|
|
19
|
+
__decorate([
|
|
20
|
+
(0, swagger_1.ApiProperty)({ description: "User email" }),
|
|
21
|
+
(0, class_validator_1.IsString)(),
|
|
22
|
+
(0, class_validator_1.IsEmail)(),
|
|
23
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
24
|
+
__metadata("design:type", String)
|
|
25
|
+
], MailMetaDataDTO.prototype, "to", void 0);
|
|
26
|
+
__decorate([
|
|
27
|
+
(0, swagger_1.ApiProperty)({ description: "Reset token" }),
|
|
28
|
+
(0, class_validator_1.IsString)(),
|
|
29
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
30
|
+
__metadata("design:type", String)
|
|
31
|
+
], MailMetaDataDTO.prototype, "token", void 0);
|
|
32
|
+
__decorate([
|
|
33
|
+
(0, swagger_1.ApiProperty)({ description: "URL link language." }),
|
|
34
|
+
(0, class_validator_1.IsString)(),
|
|
35
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
36
|
+
__metadata("design:type", String)
|
|
37
|
+
], MailMetaDataDTO.prototype, "locale", void 0);
|
|
38
|
+
//# sourceMappingURL=mail-metadata.dto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mail-metadata.dto.js","sourceRoot":"","sources":["../../../../src/modules/mail/dto/mail-metadata.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAC9C,qDAAgE;AAChE,uDAAoD;AAEpD,MAAa,eAAe;CAgB3B;AAhBD,0CAgBC;AAXU;IAJR,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;IAC1C,IAAA,0BAAQ,GAAE;IACV,IAAA,yBAAO,GAAE;IACT,IAAA,4BAAU,GAAE;;2CACQ;AAKZ;IAHR,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC;IAC3C,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;8CACW;AAKf;IAHR,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,oBAAoB,EAAE,CAAC;IAClD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;+CACY"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { DynamicModule } from "@nestjs/common";
|
|
2
|
+
export interface MailModuleOptions {
|
|
3
|
+
host?: string;
|
|
4
|
+
port?: number;
|
|
5
|
+
secure?: boolean;
|
|
6
|
+
user?: string;
|
|
7
|
+
password?: string;
|
|
8
|
+
clientUrl?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare class MailModule {
|
|
11
|
+
static forRoot(options?: MailModuleOptions): DynamicModule;
|
|
12
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var MailModule_1;
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.MailModule = void 0;
|
|
11
|
+
const common_1 = require("@nestjs/common");
|
|
12
|
+
const mailer_1 = require("@nestjs-modules/mailer");
|
|
13
|
+
const ejs_adapter_1 = require("@nestjs-modules/mailer/dist/adapters/ejs.adapter");
|
|
14
|
+
const path_1 = require("path");
|
|
15
|
+
const mail_service_1 = require("./mail.service");
|
|
16
|
+
let MailModule = MailModule_1 = class MailModule {
|
|
17
|
+
static forRoot(options = {}) {
|
|
18
|
+
const { host = "localhost", port = 587, secure = false, user = "user", password = "pass", clientUrl, } = options;
|
|
19
|
+
return {
|
|
20
|
+
module: MailModule_1,
|
|
21
|
+
imports: [
|
|
22
|
+
mailer_1.MailerModule.forRoot({
|
|
23
|
+
transport: {
|
|
24
|
+
host,
|
|
25
|
+
port,
|
|
26
|
+
secure,
|
|
27
|
+
auth: {
|
|
28
|
+
user,
|
|
29
|
+
pass: password,
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
template: {
|
|
33
|
+
dir: (0, path_1.join)(__dirname, "templates"),
|
|
34
|
+
adapter: new ejs_adapter_1.EjsAdapter(),
|
|
35
|
+
options: {
|
|
36
|
+
strict: false,
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
}),
|
|
40
|
+
],
|
|
41
|
+
providers: [
|
|
42
|
+
mail_service_1.MailService,
|
|
43
|
+
{
|
|
44
|
+
provide: "MAIL_CLIENT_URL",
|
|
45
|
+
useValue: clientUrl,
|
|
46
|
+
},
|
|
47
|
+
],
|
|
48
|
+
exports: [mail_service_1.MailService, "MAIL_CLIENT_URL"],
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
exports.MailModule = MailModule;
|
|
53
|
+
exports.MailModule = MailModule = MailModule_1 = __decorate([
|
|
54
|
+
(0, common_1.Global)(),
|
|
55
|
+
(0, common_1.Module)({})
|
|
56
|
+
], MailModule);
|
|
57
|
+
//# sourceMappingURL=mail.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mail.module.js","sourceRoot":"","sources":["../../../src/modules/mail/mail.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAA+D;AAC/D,mDAAsD;AACtD,kFAA8E;AAC9E,+BAA4B;AAC5B,iDAA6C;AActC,IAAM,UAAU,kBAAhB,MAAM,UAAU;IACrB,MAAM,CAAC,OAAO,CAAC,UAA6B,EAAE;QAC5C,MAAM,EACJ,IAAI,GAAG,WAAW,EAClB,IAAI,GAAG,GAAG,EACV,MAAM,GAAG,KAAK,EACd,IAAI,GAAG,MAAM,EACb,QAAQ,GAAG,MAAM,EACjB,SAAS,GACV,GAAG,OAAO,CAAC;QAEZ,OAAO;YACL,MAAM,EAAE,YAAU;YAClB,OAAO,EAAE;gBACP,qBAAY,CAAC,OAAO,CAAC;oBACnB,SAAS,EAAE;wBACT,IAAI;wBACJ,IAAI;wBACJ,MAAM;wBACN,IAAI,EAAE;4BACJ,IAAI;4BACJ,IAAI,EAAE,QAAQ;yBACf;qBACF;oBACD,QAAQ,EAAE;wBACR,GAAG,EAAE,IAAA,WAAI,EAAC,SAAS,EAAE,WAAW,CAAC;wBACjC,OAAO,EAAE,IAAI,wBAAU,EAAE;wBACzB,OAAO,EAAE;4BACP,MAAM,EAAE,KAAK;yBACd;qBACF;iBACF,CAAC;aACH;YACD,SAAS,EAAE;gBACT,0BAAW;gBACX;oBACE,OAAO,EAAE,iBAAiB;oBAC1B,QAAQ,EAAE,SAAS;iBACpB;aACF;YACD,OAAO,EAAE,CAAC,0BAAW,EAAE,iBAAiB,CAAC;SAC1C,CAAC;IACJ,CAAC;CACF,CAAA;AA3CY,gCAAU;qBAAV,UAAU;IAFtB,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,UAAU,CA2CtB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { MailMetaDataDTO } from "./dto/mail-metadata.dto";
|
|
2
|
+
import { MailerService } from "@nestjs-modules/mailer";
|
|
3
|
+
import { ConfigService } from "@nestjs/config";
|
|
4
|
+
export declare class MailService {
|
|
5
|
+
private readonly mailerService;
|
|
6
|
+
private readonly configService;
|
|
7
|
+
private readonly clientUrl;
|
|
8
|
+
constructor(mailerService: MailerService, configService: ConfigService, clientUrl: string | null);
|
|
9
|
+
sendForgetPasswordMail(mailData: MailMetaDataDTO): Promise<void>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.MailService = void 0;
|
|
16
|
+
const common_1 = require("@nestjs/common");
|
|
17
|
+
const mailer_1 = require("@nestjs-modules/mailer");
|
|
18
|
+
const config_1 = require("@nestjs/config");
|
|
19
|
+
const locale_1 = require("../../core/enums/locale");
|
|
20
|
+
let MailService = class MailService {
|
|
21
|
+
constructor(mailerService, configService, clientUrl) {
|
|
22
|
+
this.mailerService = mailerService;
|
|
23
|
+
this.configService = configService;
|
|
24
|
+
this.clientUrl = clientUrl;
|
|
25
|
+
}
|
|
26
|
+
async sendForgetPasswordMail(mailData) {
|
|
27
|
+
const baseUrl = this.clientUrl ||
|
|
28
|
+
this.configService.get("CLIENT_URL") ||
|
|
29
|
+
this.configService.get("FRONTEND_URL") ||
|
|
30
|
+
"";
|
|
31
|
+
const resetLink = `${baseUrl}/${mailData.locale}/reset-password?token=${encodeURIComponent(mailData.token)}`;
|
|
32
|
+
const templateName = mailData.locale === locale_1.Locale.AR ? "ar/reset-password" : "en/reset-password";
|
|
33
|
+
try {
|
|
34
|
+
await this.mailerService.sendMail({
|
|
35
|
+
to: mailData.to,
|
|
36
|
+
from: this.configService.get("EMAIL_USER"),
|
|
37
|
+
subject: "Please reset your password.",
|
|
38
|
+
template: templateName,
|
|
39
|
+
context: {
|
|
40
|
+
appName: "EVARA",
|
|
41
|
+
resetLink,
|
|
42
|
+
expiryMinutes: 10,
|
|
43
|
+
},
|
|
44
|
+
text: `Reset your password: ${resetLink}\n\nIf you didn't request this, ignore this email.`,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
console.error("Failed to send forget password email", error);
|
|
49
|
+
throw new common_1.InternalServerErrorException("Failed to send reset password email.");
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
exports.MailService = MailService;
|
|
54
|
+
exports.MailService = MailService = __decorate([
|
|
55
|
+
(0, common_1.Injectable)(),
|
|
56
|
+
__param(2, (0, common_1.Inject)("MAIL_CLIENT_URL")),
|
|
57
|
+
__metadata("design:paramtypes", [mailer_1.MailerService,
|
|
58
|
+
config_1.ConfigService, Object])
|
|
59
|
+
], MailService);
|
|
60
|
+
//# sourceMappingURL=mail.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mail.service.js","sourceRoot":"","sources":["../../../src/modules/mail/mail.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAIwB;AAExB,mDAAuD;AACvD,2CAA+C;AAC/C,oDAAiD;AAG1C,IAAM,WAAW,GAAjB,MAAM,WAAW;IACtB,YACmB,aAA4B,EAC5B,aAA4B,EACD,SAAwB;QAFnD,kBAAa,GAAb,aAAa,CAAe;QAC5B,kBAAa,GAAb,aAAa,CAAe;QACD,cAAS,GAAT,SAAS,CAAe;IACnE,CAAC;IAEJ,KAAK,CAAC,sBAAsB,CAAC,QAAyB;QACpD,MAAM,OAAO,GACX,IAAI,CAAC,SAAS;YACd,IAAI,CAAC,aAAa,CAAC,GAAG,CAAS,YAAY,CAAC;YAC5C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAS,cAAc,CAAC;YAC9C,EAAE,CAAC;QACL,MAAM,SAAS,GAAG,GAAG,OAAO,IAAI,QAAQ,CAAC,MAAM,yBAAyB,kBAAkB,CACxF,QAAQ,CAAC,KAAK,CACf,EAAE,CAAC;QACJ,MAAM,YAAY,GAChB,QAAQ,CAAC,MAAM,KAAK,eAAM,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,mBAAmB,CAAC;QAE5E,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;gBAChC,EAAE,EAAE,QAAQ,CAAC,EAAE;gBACf,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAS,YAAY,CAAC;gBAClD,OAAO,EAAE,6BAA6B;gBACtC,QAAQ,EAAE,YAAY;gBACtB,OAAO,EAAE;oBACP,OAAO,EAAE,OAAO;oBAChB,SAAS;oBACT,aAAa,EAAE,EAAE;iBAClB;gBACD,IAAI,EAAE,wBAAwB,SAAS,oDAAoD;aAC5F,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAC;YAC7D,MAAM,IAAI,qCAA4B,CACpC,sCAAsC,CACvC,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAA;AAvCY,kCAAW;sBAAX,WAAW;IADvB,IAAA,mBAAU,GAAE;IAKR,WAAA,IAAA,eAAM,EAAC,iBAAiB,CAAC,CAAA;qCAFM,sBAAa;QACb,sBAAa;GAHpC,WAAW,CAuCvB"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="ar" dir="rtl">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<meta name="x-apple-disable-message-reformatting" />
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
7
|
+
<title>إعادة تعيين كلمة المرور</title>
|
|
8
|
+
</head>
|
|
9
|
+
<body style="background:#f9f9f9; margin:0; font-family:Arial, Helvetica, sans-serif; color:#333; text-align:center;">
|
|
10
|
+
<span style="display:none !important; visibility:hidden; opacity:0; color:transparent; height:0; width:0;">
|
|
11
|
+
رابط إعادة تعيين كلمة المرور بالداخل
|
|
12
|
+
</span>
|
|
13
|
+
<div style="max-width:600px; margin:40px auto; background:#fff; border-radius:8px; box-shadow:0 2px 6px rgba(0,0,0,0.1);">
|
|
14
|
+
<div style="padding:32px;">
|
|
15
|
+
<h2 style="margin:0 0 20px 0; color:#161a39; font-size:24px;">من فضلك أعد تعيين كلمة المرور</h2>
|
|
16
|
+
<p style="font-size:16px; margin:0 0 16px 0;">مرحباً،</p>
|
|
17
|
+
<p style="font-size:16px; margin:0 0 24px 0;">
|
|
18
|
+
لقد تلقينا طلباً لإعادة تعيين كلمة المرور لحسابك.
|
|
19
|
+
</p>
|
|
20
|
+
<p style="margin:0 0 28px 0;">
|
|
21
|
+
<a href="<%= resetLink %>"
|
|
22
|
+
target="_blank"
|
|
23
|
+
style="display:inline-block; padding:16px 36px; text-decoration:none; background:#18163a; color:#fff; border-radius:6px; font-size:18px;">
|
|
24
|
+
إعادة تعيين كلمة المرور
|
|
25
|
+
</a>
|
|
26
|
+
</p>
|
|
27
|
+
<p style="font-size:14px; margin:0 0 16px 0; color:#666;">
|
|
28
|
+
إذا لم تطلب هذا، يمكنك تجاهل هذا البريد بأمان.
|
|
29
|
+
</p>
|
|
30
|
+
<p style="margin:0; color:#999; font-size:12px;">
|
|
31
|
+
رابط إعادة التعيين صالح لمدة <%= expiryMinutes %> دقيقة.
|
|
32
|
+
</p>
|
|
33
|
+
</div>
|
|
34
|
+
</div>
|
|
35
|
+
</body>
|
|
36
|
+
</html>
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<meta name="x-apple-disable-message-reformatting" />
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
7
|
+
<title>Reset your password</title>
|
|
8
|
+
</head>
|
|
9
|
+
<body style="background:#f9f9f9; margin:0; font-family:Arial, Helvetica, sans-serif; color:#333; text-align:center;">
|
|
10
|
+
<span style="display:none !important; visibility:hidden; opacity:0; color:transparent; height:0; width:0;">
|
|
11
|
+
Reset your password link inside
|
|
12
|
+
</span>
|
|
13
|
+
<div style="max-width:600px; margin:40px auto; background:#fff; border-radius:10px; box-shadow:0 2px 8px rgba(0,0,0,0.1); text-align:center;">
|
|
14
|
+
<div style="padding:32px;">
|
|
15
|
+
<h2 style="margin:0 0 20px 0; color:#161a39; font-size:26px; font-weight:bold;">
|
|
16
|
+
Reset Your Password
|
|
17
|
+
</h2>
|
|
18
|
+
<p style="font-size:16px; margin:0 0 12px 0;">Hello,</p>
|
|
19
|
+
<p style="font-size:16px; margin:0 0 24px 0; line-height:1.5; color:#444;">
|
|
20
|
+
We received a request to reset the password for your account.
|
|
21
|
+
</p>
|
|
22
|
+
<p style="margin:0 0 28px 0;">
|
|
23
|
+
<a href="<%= resetLink %>"
|
|
24
|
+
target="_blank"
|
|
25
|
+
style="display:inline-block; padding:16px 40px; text-decoration:none; background:#18163a; color:#fff; border-radius:6px; font-size:18px; font-weight:bold;">
|
|
26
|
+
Reset Password
|
|
27
|
+
</a>
|
|
28
|
+
</p>
|
|
29
|
+
<p style="font-size:14px; margin:0 0 12px 0; color:#666; line-height:1.4;">
|
|
30
|
+
If you didn’t request this, you can safely ignore this email.
|
|
31
|
+
</p>
|
|
32
|
+
<p style="margin:0; color:#999; font-size:12px; line-height:1.4;">
|
|
33
|
+
This link will expire in <%= expiryMinutes %> minutes.
|
|
34
|
+
</p>
|
|
35
|
+
</div>
|
|
36
|
+
</div>
|
|
37
|
+
</body>
|
|
38
|
+
</html>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ModuleDTO } from "./module.dto";
|
|
2
|
-
declare const CreateModuleDTO_base: import("@nestjs/common").Type<Omit<ModuleDTO, "
|
|
2
|
+
declare const CreateModuleDTO_base: import("@nestjs/common").Type<Omit<ModuleDTO, "id" | "createdAt" | "updatedAt" | "deletedAt">>;
|
|
3
3
|
export declare class CreateModuleDTO extends CreateModuleDTO_base {
|
|
4
4
|
}
|
|
5
5
|
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ModuleDTO } from "./module.dto";
|
|
2
|
-
declare const UpdateModuleDTO_base: import("@nestjs/common").Type<Partial<Omit<ModuleDTO, "
|
|
2
|
+
declare const UpdateModuleDTO_base: import("@nestjs/common").Type<Partial<Omit<ModuleDTO, "createdBy" | "createdAt" | "updatedBy" | "updatedAt">>>;
|
|
3
3
|
export declare class UpdateModuleDTO extends UpdateModuleDTO_base {
|
|
4
4
|
}
|
|
5
5
|
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { RoleDTO } from "./role.dto";
|
|
2
|
-
declare const CreateRoleDTO_base: import("@nestjs/common").Type<Omit<RoleDTO, "permissions" | "
|
|
2
|
+
declare const CreateRoleDTO_base: import("@nestjs/common").Type<Omit<RoleDTO, "permissions" | "id" | "createdAt" | "updatedAt" | "deletedAt">>;
|
|
3
3
|
export declare class CreateRoleDTO extends CreateRoleDTO_base {
|
|
4
4
|
permissions: number[];
|
|
5
5
|
}
|
|
@@ -172,6 +172,9 @@ let RoleController = RoleController_1 = class RoleController {
|
|
|
172
172
|
if (!entity) {
|
|
173
173
|
throw new common_1.NotFoundException(`Role with id ${id} not found`);
|
|
174
174
|
}
|
|
175
|
+
if (entity.isSystemRole) {
|
|
176
|
+
throw new common_1.BadRequestException("System roles cannot be deleted");
|
|
177
|
+
}
|
|
175
178
|
await this.roleService.delete(entity);
|
|
176
179
|
}
|
|
177
180
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"role.controller.js","sourceRoot":"","sources":["../../../src/modules/role/role.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAEA,2CAewB;AACxB,qCAAkC;AAClC,6CAKyB;AACzB,iDAA6C;AAC7C,yEAAqE;AACrE,uEAA6D;AAC7D,0EAAiE;AACjE,8DAA0D;AAI1D,8CAA0C;AAC1C,4DAAuD;AACvD,4DAAuD;AACvD,0DAAqD;AAGrD,+CAIuB;AAGvB,yEAAiE;AACjE,uFAAyE;AACzE,2FAA8E;AAE9E,sEAAsE;AACtE,6DAAyD;AACzD,2DAAwE;AAGxE,6EAA0E;AAOnE,IAAM,cAAc,sBAApB,MAAM,cAAc;IAGzB,YACmB,WAAwB,EACxB,iBAAoC,EACpC,aAA4B;QAF5B,gBAAW,GAAX,WAAW,CAAa;QACxB,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,kBAAa,GAAb,aAAa,CAAe;QAL9B,WAAM,GAAG,IAAI,eAAM,CAAC,gBAAc,CAAC,IAAI,CAAC,CAAC;IAMvD,CAAC;IAcE,AAAN,KAAK,CAAC,MAAM,CACH,GAAY,EACV,KAAmB;QAE5B,MAAM,WAAW,GAAG,IAAI,+BAAW,CACjC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,EAClB,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,EACvB,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CACxE,CAAC;QAEF,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAC1D,KAAK,EACL,WAAW,CACZ,CAAC;QAEF,MAAM,SAAS,GAAG,IAAA,uCAAyB,EAAC,OAAO,EAAE;YACnD,IAAI;YACJ,QAAQ;YACR,QAAQ;YACR,eAAe;YACf,eAAe;YACf,cAAc;YACd,WAAW;YACX,WAAW;YACX,WAAW;YACX,WAAW;SACZ,CAAC,CAAC;QAEH,wBAAU,CAAC,oBAAoB,CAC7B,GAAG,CAAC,GAAI,EACR,KAAK,EACL,WAAW,CAAC,IAAI,EAChB,KAAK,GAAG,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,IAAI,CAClD,CAAC;QAEF,OAAO,SAAS,CAAC;IACnB,CAAC;IAQK,AAAN,KAAK,CAAC,eAAe,CACZ,GAAY,EACV,KAAmB;QAE5B,MAAM,WAAW,GAAG,IAAI,+BAAW,CACjC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,EAClB,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,EACvB,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CACxE,CAAC;QAEF,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,qBAAqB,CACrE,KAAK,EACL,WAAW,CACZ,CAAC;QAEF,MAAM,UAAU,GAAG,IAAA,6CAA6B,EAC9C,OAAyB,EACzB;YACE,IAAI;YACJ,QAAQ;YACR,QAAQ;YACR,MAAM;YACN,eAAe;YACf,eAAe;YACf,UAAU;YACV,OAAO;YACP,WAAW;YACX,WAAW;SACZ,CACF,CAAC;QAEF,wBAAU,CAAC,oBAAoB,CAC7B,GAAG,CAAC,GAAI,EACR,KAAK,EACL,WAAW,CAAC,IAAI,EAChB,KAAK,GAAG,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,IAAI,CAClD,CAAC;QAEF,OAAO,UAAkC,CAAC;IAC5C,CAAC;IAQK,AAAN,KAAK,CAAC,OAAO,CACgB,EAAU;QAErC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,0BAAiB,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;QAC9D,CAAC;QAED,OAAO,IAAA,uCAAyB,EAAC,MAAM,EAAE;YACvC,IAAI;YACJ,QAAQ;YACR,QAAQ;YACR,eAAe;YACf,eAAe;YACf,cAAc;YACd,aAAa;YACb,WAAW;YACX,WAAW;YACX,WAAW;YACX,WAAW;SACZ,CAAC,CAAC;IACL,CAAC;IASK,AAAN,KAAK,CAAC,MAAM,CACF,GAAkB,EACd,IAAS;QAGrB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YAChD,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;SACxD,CAAC,CAAC;QAEH,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,4BAAmB,CAAC,0BAA0B,CAAC,CAAC;QAC5D,CAAC;QAGD,IAAI,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClD,MAAM,aAAa,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,CACxC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAChB,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,KAAK,KAAK,CAC3D,CAAC;YAEF,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,IAAI,4BAAmB,CAC3B,2CAA2C,CAC5C,CAAC;YACJ,CAAC;YAGD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;gBACpD,KAAK,EAAE,EAAE,EAAE,EAAE,IAAA,YAAE,EAAC,GAAG,CAAC,WAAW,CAAC,EAAE;aACnC,CAAC,CAAC;YAEH,IAAI,WAAW,CAAC,MAAM,KAAK,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;gBAClD,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC9C,MAAM,UAAU,GAAG,GAAG,CAAC,WAAW,CAAC,MAAM,CACvC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAC/B,CAAC;gBACF,MAAM,IAAI,4BAAmB,CAC3B,2BAA2B,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACnD,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,IAAA,sCAAwB,EAAC,GAAG,CAAC,CAAC;QAC7C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAC/D,OAAO,IAAA,uCAAyB,EAAC,KAAK,CAAY,CAAC;IACrD,CAAC;IASK,AAAN,KAAK,CAAC,MAAM,CACiB,EAAU,EAC7B,GAAkB,EACd,IAAS;QAErB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,0BAAiB,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;QAC9D,CAAC;QAGD,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;YAC1B,MAAM,IAAI,4BAAmB,CAAC,iCAAiC,CAAC,CAAC;QACnE,CAAC;QAGD,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YACnD,KAAK,EAAE;gBACL,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,EAAE,IAAA,aAAG,EAAC,EAAE,CAAC,EAAE;gBACnC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,EAAE,IAAA,aAAG,EAAC,EAAE,CAAC,EAAE;aACpC;SACF,CAAC,CAAC;QAEH,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,4BAAmB,CAAC,0BAA0B,CAAC,CAAC;QAC5D,CAAC;QAGD,IAAI,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClD,MAAM,aAAa,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,CACxC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAChB,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,KAAK,KAAK,CAC5D,CAAC;YAEF,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,IAAI,4BAAmB,CAC3B,2CAA2C,CAC5C,CAAC;YACJ,CAAC;YAGD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;gBACpD,KAAK,EAAE,EAAE,EAAE,EAAE,IAAA,YAAE,EAAC,GAAG,CAAC,WAAW,CAAC,EAAE;aACnC,CAAC,CAAC;YAEH,IAAI,WAAW,CAAC,MAAM,KAAK,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;gBAClD,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC9C,MAAM,UAAU,GAAG,GAAG,CAAC,WAAW,CAAC,MAAM,CACvC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAC/B,CAAC;gBACF,MAAM,IAAI,4BAAmB,CAC3B,2BAA2B,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACnD,CAAC;YACJ,CAAC;QACH,CAAC;QAED,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;QACZ,MAAM,MAAM,GAAG,IAAA,sCAAwB,EAAC,GAAG,CAAC,CAAC;QAE7C,IAAI,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClD,MAAM,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;gBAClD,MAAM,UAAU,GAAG,IAAI,8BAAU,EAAE,CAAC;gBACpC,UAAU,CAAC,EAAE,GAAG,MAAM,CAAC;gBACvB,OAAO,UAAU,CAAC;YACpB,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YAEN,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;QAC5C,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACnE,OAAO,IAAA,uCAAyB,EAAC,OAAO,CAAY,CAAC;IACvD,CAAC;IASK,AAAN,KAAK,CAAC,MAAM,CAA4B,EAAU;QAChD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,0BAAiB,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;QAC9D,CAAC;QACD,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;CACF,CAAA;
|
|
1
|
+
{"version":3,"file":"role.controller.js","sourceRoot":"","sources":["../../../src/modules/role/role.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { UserDTO } from "./user.dto";
|
|
2
|
-
declare const CreateUserDTO_base: import("@nestjs/common").Type<Omit<UserDTO, "
|
|
2
|
+
declare const CreateUserDTO_base: import("@nestjs/common").Type<Omit<UserDTO, "roles" | "id" | "createdAt" | "updatedAt" | "deletedAt">>;
|
|
3
3
|
export declare class CreateUserDTO extends CreateUserDTO_base {
|
|
4
4
|
roles: number[];
|
|
5
5
|
}
|
|
@@ -6,10 +6,12 @@ import { UpdateUserDTO } from "../user/dtos/update-user.dto";
|
|
|
6
6
|
import type { Request } from "../../core/utils/request";
|
|
7
7
|
import { UserQueryDTO } from "../user/dtos/user-query.dto";
|
|
8
8
|
import { CreateUserDTO } from "./dtos/create-user.dto";
|
|
9
|
+
import { RoleService } from "../role/role.service";
|
|
9
10
|
export declare class UserController {
|
|
10
11
|
private readonly userService;
|
|
12
|
+
private readonly roleService;
|
|
11
13
|
logger: Logger;
|
|
12
|
-
constructor(userService: UserService);
|
|
14
|
+
constructor(userService: UserService, roleService: RoleService);
|
|
13
15
|
getAllUsers(req: Request, query: UserQueryDTO): Promise<UpdateUserDTO[]>;
|
|
14
16
|
getUserById(id: number): Promise<UserDTO>;
|
|
15
17
|
create(createUserDTO: CreateUserDTO, user: User): Promise<UserDTO>;
|
|
@@ -30,9 +30,11 @@ const permissions_decorator_1 = require("../../security/decorators/permissions.d
|
|
|
30
30
|
const user_permission_1 = require("../../core/enums/user-permission");
|
|
31
31
|
const create_user_dto_1 = require("./dtos/create-user.dto");
|
|
32
32
|
const permission_guard_1 = require("../../security/guards/permission.guard");
|
|
33
|
+
const role_service_1 = require("../role/role.service");
|
|
33
34
|
let UserController = class UserController {
|
|
34
|
-
constructor(userService) {
|
|
35
|
+
constructor(userService, roleService) {
|
|
35
36
|
this.userService = userService;
|
|
37
|
+
this.roleService = roleService;
|
|
36
38
|
this.logger = new common_1.Logger("UsersController");
|
|
37
39
|
}
|
|
38
40
|
async getAllUsers(req, query) {
|
|
@@ -64,6 +66,14 @@ let UserController = class UserController {
|
|
|
64
66
|
if (existing) {
|
|
65
67
|
throw new common_1.BadRequestException(`User with email ${createUserDTO.email} already exists`);
|
|
66
68
|
}
|
|
69
|
+
if (createUserDTO.roles?.length) {
|
|
70
|
+
const roles = await this.roleService.find({
|
|
71
|
+
where: { id: (0, typeorm_1.In)(createUserDTO.roles) },
|
|
72
|
+
});
|
|
73
|
+
if (roles.length !== createUserDTO.roles.length) {
|
|
74
|
+
throw new common_1.BadRequestException("One or more roles do not exist");
|
|
75
|
+
}
|
|
76
|
+
}
|
|
67
77
|
const createUserEntity = (0, user_mapper_1.mapCreateUserDtoToEntity)(createUserDTO);
|
|
68
78
|
const created = await this.userService.save(createUserEntity, user?.email, true);
|
|
69
79
|
return created;
|
|
@@ -181,6 +191,7 @@ exports.UserController = UserController = __decorate([
|
|
|
181
191
|
(0, swagger_1.ApiBearerAuth)(),
|
|
182
192
|
(0, common_1.UseGuards)(jwt_auth_guard_1.AuthGuard, permission_guard_1.PermissionsGuard),
|
|
183
193
|
(0, swagger_1.ApiTags)("users-module"),
|
|
184
|
-
__metadata("design:paramtypes", [user_service_1.UserService
|
|
194
|
+
__metadata("design:paramtypes", [user_service_1.UserService,
|
|
195
|
+
role_service_1.RoleService])
|
|
185
196
|
], UserController);
|
|
186
197
|
//# sourceMappingURL=user.controller.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.controller.js","sourceRoot":"","sources":["../../../src/modules/user/user.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAcwB;AACxB,iDAA6C;AAC7C,6CAKyB;AACzB,oDAAgD;AAChD,+CAAqC;AACrC,
|
|
1
|
+
{"version":3,"file":"user.controller.js","sourceRoot":"","sources":["../../../src/modules/user/user.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.LanguageGuard = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const locale_1 = require("../../core/enums/locale");
|
|
12
|
+
let LanguageGuard = class LanguageGuard {
|
|
13
|
+
canActivate(context) {
|
|
14
|
+
const req = context.switchToHttp().getRequest();
|
|
15
|
+
const langHeader = req.headers["accept-language"];
|
|
16
|
+
const acceptedLanguage = langHeader === locale_1.Locale.EN ? locale_1.Locale.EN : locale_1.Locale.AR;
|
|
17
|
+
req["locale"] = acceptedLanguage;
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
exports.LanguageGuard = LanguageGuard;
|
|
22
|
+
exports.LanguageGuard = LanguageGuard = __decorate([
|
|
23
|
+
(0, common_1.Injectable)()
|
|
24
|
+
], LanguageGuard);
|
|
25
|
+
//# sourceMappingURL=language.guard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"language.guard.js","sourceRoot":"","sources":["../../../src/security/guards/language.guard.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA2E;AAC3E,oDAAiD;AAI1C,IAAM,aAAa,GAAnB,MAAM,aAAa;IACxB,WAAW,CAAC,OAAyB;QACnC,MAAM,GAAG,GAAY,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QAEzD,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAElD,MAAM,gBAAgB,GAAG,UAAU,KAAK,eAAM,CAAC,EAAE,CAAC,CAAC,CAAC,eAAM,CAAC,EAAE,CAAC,CAAC,CAAC,eAAM,CAAC,EAAE,CAAC;QAE1E,GAAG,CAAC,QAAQ,CAAC,GAAG,gBAAgB,CAAC;QAEjC,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AAZY,sCAAa;wBAAb,aAAa;IADzB,IAAA,mBAAU,GAAE;GACA,aAAa,CAYzB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lower-case.transformer.js","sourceRoot":"","sources":["../../../src/security/transformers/lower-case.transformer.ts"],"names":[],"mappings":";;;AAAO,MAAM,WAAW,GAAG,CAAC,EAAE,KAAK,EAAqB,EAAE,EAAE,CAC1D,KAAK,EAAE,WAAW,EAAE,CAAC;AADV,QAAA,WAAW,eACD"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.removeSpaces = void 0;
|
|
4
|
+
const removeSpaces = ({ value }) => value?.replace(/\s/g, '');
|
|
5
|
+
exports.removeSpaces = removeSpaces;
|
|
6
|
+
//# sourceMappingURL=remove-spaces.transformer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remove-spaces.transformer.js","sourceRoot":"","sources":["../../../src/security/transformers/remove-spaces.transformer.ts"],"names":[],"mappings":";;;AAAO,MAAM,YAAY,GAAG,CAAC,EAAE,KAAK,EAAqB,EAAE,EAAE,CAC3D,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AADf,QAAA,YAAY,gBACG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function IsStrongPassword(): PropertyDecorator;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IsStrongPassword = IsStrongPassword;
|
|
4
|
+
const class_validator_1 = require("class-validator");
|
|
5
|
+
function IsStrongPassword() {
|
|
6
|
+
return (0, class_validator_1.Matches)(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[\W_]).+$/, {
|
|
7
|
+
message: 'Password must contain at least one uppercase letter, one lowercase letter, one number, and one special character',
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=strong-password.validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strong-password.validator.js","sourceRoot":"","sources":["../../../src/security/validators/strong-password.validator.ts"],"names":[],"mappings":";;AAEA,4CAKC;AAPD,qDAA0C;AAE1C,SAAgB,gBAAgB;IAC9B,OAAO,IAAA,yBAAO,EAAC,+CAA+C,EAAE;QAC9D,OAAO,EACL,kHAAkH;KACrH,CAAC,CAAC;AACL,CAAC"}
|