@ciscode/authentication-kit 1.1.6 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +455 -120
- package/dist/auth-kit.module.d.ts +6 -4
- package/dist/auth-kit.module.js +64 -13
- package/dist/config/passport.config.d.ts +2 -1
- package/dist/config/passport.config.js +64 -241
- package/dist/controllers/auth.controller.d.ts +35 -19
- package/dist/controllers/auth.controller.js +155 -488
- package/dist/controllers/permissions.controller.d.ts +10 -5
- package/dist/controllers/permissions.controller.js +40 -76
- package/dist/controllers/roles.controller.d.ts +11 -5
- package/dist/controllers/roles.controller.js +49 -66
- package/dist/controllers/users.controller.d.ts +15 -7
- package/dist/controllers/users.controller.js +52 -227
- package/dist/dtos/auth/forgot-password.dto.d.ts +3 -0
- package/dist/dtos/auth/forgot-password.dto.js +20 -0
- package/dist/dtos/auth/login.dto.d.ts +4 -0
- package/dist/dtos/auth/login.dto.js +24 -0
- package/dist/dtos/auth/refresh-token.dto.d.ts +3 -0
- package/dist/dtos/auth/refresh-token.dto.js +21 -0
- package/dist/dtos/auth/register.dto.d.ts +13 -0
- package/dist/dtos/auth/register.dto.js +56 -0
- package/dist/dtos/auth/resend-verification.dto.d.ts +3 -0
- package/dist/dtos/auth/resend-verification.dto.js +20 -0
- package/dist/dtos/auth/reset-password.dto.d.ts +4 -0
- package/dist/dtos/auth/reset-password.dto.js +25 -0
- package/dist/dtos/auth/update-user-role.dto.d.ts +3 -0
- package/dist/dtos/auth/update-user-role.dto.js +21 -0
- package/dist/dtos/auth/verify-email.dto.d.ts +3 -0
- package/dist/dtos/auth/verify-email.dto.js +20 -0
- package/dist/dtos/permission/create-permission.dto.d.ts +4 -0
- package/dist/dtos/permission/create-permission.dto.js +25 -0
- package/dist/dtos/permission/update-permission.dto.d.ts +4 -0
- package/dist/dtos/permission/update-permission.dto.js +26 -0
- package/dist/dtos/role/create-role.dto.d.ts +4 -0
- package/dist/dtos/role/create-role.dto.js +26 -0
- package/dist/dtos/role/update-role.dto.d.ts +7 -0
- package/dist/dtos/role/update-role.dto.js +35 -0
- package/dist/index.d.ts +5 -2
- package/dist/index.js +11 -5
- package/dist/middleware/admin.decorator.d.ts +1 -0
- package/dist/middleware/admin.decorator.js +8 -0
- package/dist/middleware/admin.guard.d.ts +7 -0
- package/dist/middleware/admin.guard.js +35 -0
- package/dist/middleware/authenticate.guard.d.ts +5 -1
- package/dist/middleware/authenticate.guard.js +35 -8
- package/dist/middleware/role.guard.d.ts +4 -0
- package/dist/middleware/role.guard.js +29 -0
- package/dist/models/permission.model.d.ts +8 -16
- package/dist/models/permission.model.js +25 -14
- package/dist/models/role.model.d.ts +9 -28
- package/dist/models/role.model.js +26 -14
- package/dist/models/user.model.d.ts +22 -64
- package/dist/models/user.model.js +82 -41
- package/dist/repositories/permission.repository.d.ts +34 -0
- package/dist/repositories/permission.repository.js +47 -0
- package/dist/repositories/role.repository.d.ts +39 -0
- package/dist/repositories/role.repository.js +50 -0
- package/dist/repositories/user.repository.d.ts +57 -0
- package/dist/repositories/user.repository.js +71 -0
- package/dist/services/admin-role.service.d.ts +7 -0
- package/dist/services/admin-role.service.js +33 -0
- package/dist/services/auth.service.d.ts +49 -0
- package/dist/services/auth.service.js +219 -0
- package/dist/services/mail.service.d.ts +5 -0
- package/dist/services/mail.service.js +39 -0
- package/dist/services/oauth.service.d.ts +32 -0
- package/dist/services/oauth.service.js +138 -0
- package/dist/services/permissions.service.d.ts +19 -0
- package/dist/services/permissions.service.js +44 -0
- package/dist/services/roles.service.d.ts +23 -0
- package/dist/services/roles.service.js +57 -0
- package/dist/services/seed.service.d.ts +11 -0
- package/dist/services/seed.service.js +50 -0
- package/dist/services/users.service.d.ts +30 -0
- package/dist/services/users.service.js +81 -0
- package/package.json +31 -21
- package/dist/config/db.config.d.ts +0 -1
- package/dist/config/db.config.js +0 -22
- package/dist/controllers/admin.controller.d.ts +0 -4
- package/dist/controllers/admin.controller.js +0 -59
- package/dist/controllers/password-reset.controller.d.ts +0 -8
- package/dist/controllers/password-reset.controller.js +0 -146
- package/dist/middleware/auth.guard.d.ts +0 -4
- package/dist/middleware/auth.guard.js +0 -39
- package/dist/middleware/permission.guard.d.ts +0 -4
- package/dist/middleware/permission.guard.js +0 -52
- package/dist/models/client.model.d.ts +0 -54
- package/dist/models/client.model.js +0 -37
- package/dist/models/tenant.model.d.ts +0 -19
- package/dist/models/tenant.model.js +0 -15
|
@@ -1,45 +1,86 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
3
|
-
|
|
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);
|
|
4
10
|
};
|
|
5
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.UserSchema = void 0;
|
|
7
|
-
const mongoose_1 =
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
exports.UserSchema = exports.User = void 0;
|
|
13
|
+
const mongoose_1 = require("@nestjs/mongoose");
|
|
14
|
+
const mongoose_2 = require("mongoose");
|
|
15
|
+
let FullName = class FullName {
|
|
16
|
+
};
|
|
17
|
+
__decorate([
|
|
18
|
+
(0, mongoose_1.Prop)({ required: true, trim: true }),
|
|
19
|
+
__metadata("design:type", String)
|
|
20
|
+
], FullName.prototype, "fname", void 0);
|
|
21
|
+
__decorate([
|
|
22
|
+
(0, mongoose_1.Prop)({ required: true, trim: true }),
|
|
23
|
+
__metadata("design:type", String)
|
|
24
|
+
], FullName.prototype, "lname", void 0);
|
|
25
|
+
FullName = __decorate([
|
|
26
|
+
(0, mongoose_1.Schema)({ _id: false })
|
|
27
|
+
], FullName);
|
|
28
|
+
const FullNameSchema = mongoose_1.SchemaFactory.createForClass(FullName);
|
|
29
|
+
let User = class User {
|
|
30
|
+
};
|
|
31
|
+
exports.User = User;
|
|
32
|
+
__decorate([
|
|
33
|
+
(0, mongoose_1.Prop)({ type: FullNameSchema, required: true }),
|
|
34
|
+
__metadata("design:type", FullName)
|
|
35
|
+
], User.prototype, "fullname", void 0);
|
|
36
|
+
__decorate([
|
|
37
|
+
(0, mongoose_1.Prop)({ required: true, unique: true, trim: true, minlength: 3, maxlength: 30 }),
|
|
38
|
+
__metadata("design:type", String)
|
|
39
|
+
], User.prototype, "username", void 0);
|
|
40
|
+
__decorate([
|
|
41
|
+
(0, mongoose_1.Prop)({
|
|
42
|
+
required: true,
|
|
43
|
+
unique: true,
|
|
44
|
+
lowercase: true,
|
|
45
|
+
trim: true,
|
|
46
|
+
match: /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/,
|
|
47
|
+
}),
|
|
48
|
+
__metadata("design:type", String)
|
|
49
|
+
], User.prototype, "email", void 0);
|
|
50
|
+
__decorate([
|
|
51
|
+
(0, mongoose_1.Prop)({ default: 'default.jpg' }),
|
|
52
|
+
__metadata("design:type", String)
|
|
53
|
+
], User.prototype, "avatar", void 0);
|
|
54
|
+
__decorate([
|
|
55
|
+
(0, mongoose_1.Prop)({
|
|
15
56
|
unique: true,
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
},
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
exports.
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
exports.
|
|
57
|
+
trim: true,
|
|
58
|
+
sparse: true,
|
|
59
|
+
match: /^[0-9]{10,14}$/,
|
|
60
|
+
}),
|
|
61
|
+
__metadata("design:type", String)
|
|
62
|
+
], User.prototype, "phoneNumber", void 0);
|
|
63
|
+
__decorate([
|
|
64
|
+
(0, mongoose_1.Prop)({ minlength: 8, select: false }),
|
|
65
|
+
__metadata("design:type", String)
|
|
66
|
+
], User.prototype, "password", void 0);
|
|
67
|
+
__decorate([
|
|
68
|
+
(0, mongoose_1.Prop)({ default: Date.now }),
|
|
69
|
+
__metadata("design:type", Date)
|
|
70
|
+
], User.prototype, "passwordChangedAt", void 0);
|
|
71
|
+
__decorate([
|
|
72
|
+
(0, mongoose_1.Prop)({ type: [{ type: mongoose_2.Types.ObjectId, ref: 'Role' }], required: true }),
|
|
73
|
+
__metadata("design:type", Array)
|
|
74
|
+
], User.prototype, "roles", void 0);
|
|
75
|
+
__decorate([
|
|
76
|
+
(0, mongoose_1.Prop)({ default: false }),
|
|
77
|
+
__metadata("design:type", Boolean)
|
|
78
|
+
], User.prototype, "isVerified", void 0);
|
|
79
|
+
__decorate([
|
|
80
|
+
(0, mongoose_1.Prop)({ default: false }),
|
|
81
|
+
__metadata("design:type", Boolean)
|
|
82
|
+
], User.prototype, "isBanned", void 0);
|
|
83
|
+
exports.User = User = __decorate([
|
|
84
|
+
(0, mongoose_1.Schema)({ timestamps: true })
|
|
85
|
+
], User);
|
|
86
|
+
exports.UserSchema = mongoose_1.SchemaFactory.createForClass(User);
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { Model, Types } from 'mongoose';
|
|
2
|
+
import { Permission, PermissionDocument } from '../models/permission.model';
|
|
3
|
+
export declare class PermissionRepository {
|
|
4
|
+
private readonly permModel;
|
|
5
|
+
constructor(permModel: Model<PermissionDocument>);
|
|
6
|
+
create(data: Partial<Permission>): Promise<import("mongoose").Document<unknown, {}, PermissionDocument> & Permission & import("mongoose").Document<any, any, any> & {
|
|
7
|
+
_id: Types.ObjectId;
|
|
8
|
+
}>;
|
|
9
|
+
findById(id: string | Types.ObjectId): import("mongoose").Query<import("mongoose").Document<unknown, {}, PermissionDocument> & Permission & import("mongoose").Document<any, any, any> & {
|
|
10
|
+
_id: Types.ObjectId;
|
|
11
|
+
}, import("mongoose").Document<unknown, {}, PermissionDocument> & Permission & import("mongoose").Document<any, any, any> & {
|
|
12
|
+
_id: Types.ObjectId;
|
|
13
|
+
}, {}, PermissionDocument, "findOne">;
|
|
14
|
+
findByName(name: string): import("mongoose").Query<import("mongoose").Document<unknown, {}, PermissionDocument> & Permission & import("mongoose").Document<any, any, any> & {
|
|
15
|
+
_id: Types.ObjectId;
|
|
16
|
+
}, import("mongoose").Document<unknown, {}, PermissionDocument> & Permission & import("mongoose").Document<any, any, any> & {
|
|
17
|
+
_id: Types.ObjectId;
|
|
18
|
+
}, {}, PermissionDocument, "findOne">;
|
|
19
|
+
list(): import("mongoose").Query<(import("mongoose").FlattenMaps<PermissionDocument> & {
|
|
20
|
+
_id: Types.ObjectId;
|
|
21
|
+
})[], import("mongoose").Document<unknown, {}, PermissionDocument> & Permission & import("mongoose").Document<any, any, any> & {
|
|
22
|
+
_id: Types.ObjectId;
|
|
23
|
+
}, {}, PermissionDocument, "find">;
|
|
24
|
+
updateById(id: string | Types.ObjectId, data: Partial<Permission>): import("mongoose").Query<import("mongoose").Document<unknown, {}, PermissionDocument> & Permission & import("mongoose").Document<any, any, any> & {
|
|
25
|
+
_id: Types.ObjectId;
|
|
26
|
+
}, import("mongoose").Document<unknown, {}, PermissionDocument> & Permission & import("mongoose").Document<any, any, any> & {
|
|
27
|
+
_id: Types.ObjectId;
|
|
28
|
+
}, {}, PermissionDocument, "findOneAndUpdate">;
|
|
29
|
+
deleteById(id: string | Types.ObjectId): import("mongoose").Query<import("mongoose").Document<unknown, {}, PermissionDocument> & Permission & import("mongoose").Document<any, any, any> & {
|
|
30
|
+
_id: Types.ObjectId;
|
|
31
|
+
}, import("mongoose").Document<unknown, {}, PermissionDocument> & Permission & import("mongoose").Document<any, any, any> & {
|
|
32
|
+
_id: Types.ObjectId;
|
|
33
|
+
}, {}, PermissionDocument, "findOneAndDelete">;
|
|
34
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
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.PermissionRepository = void 0;
|
|
16
|
+
const common_1 = require("@nestjs/common");
|
|
17
|
+
const mongoose_1 = require("@nestjs/mongoose");
|
|
18
|
+
const permission_model_1 = require("../models/permission.model");
|
|
19
|
+
let PermissionRepository = class PermissionRepository {
|
|
20
|
+
constructor(permModel) {
|
|
21
|
+
this.permModel = permModel;
|
|
22
|
+
}
|
|
23
|
+
create(data) {
|
|
24
|
+
return this.permModel.create(data);
|
|
25
|
+
}
|
|
26
|
+
findById(id) {
|
|
27
|
+
return this.permModel.findById(id);
|
|
28
|
+
}
|
|
29
|
+
findByName(name) {
|
|
30
|
+
return this.permModel.findOne({ name });
|
|
31
|
+
}
|
|
32
|
+
list() {
|
|
33
|
+
return this.permModel.find().lean();
|
|
34
|
+
}
|
|
35
|
+
updateById(id, data) {
|
|
36
|
+
return this.permModel.findByIdAndUpdate(id, data, { new: true });
|
|
37
|
+
}
|
|
38
|
+
deleteById(id) {
|
|
39
|
+
return this.permModel.findByIdAndDelete(id);
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
exports.PermissionRepository = PermissionRepository;
|
|
43
|
+
exports.PermissionRepository = PermissionRepository = __decorate([
|
|
44
|
+
(0, common_1.Injectable)(),
|
|
45
|
+
__param(0, (0, mongoose_1.InjectModel)(permission_model_1.Permission.name)),
|
|
46
|
+
__metadata("design:paramtypes", [Function])
|
|
47
|
+
], PermissionRepository);
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { Model, Types } from 'mongoose';
|
|
2
|
+
import { Role, RoleDocument } from '../models/role.model';
|
|
3
|
+
export declare class RoleRepository {
|
|
4
|
+
private readonly roleModel;
|
|
5
|
+
constructor(roleModel: Model<RoleDocument>);
|
|
6
|
+
create(data: Partial<Role>): Promise<import("mongoose").Document<unknown, {}, RoleDocument> & Role & import("mongoose").Document<any, any, any> & {
|
|
7
|
+
_id: Types.ObjectId;
|
|
8
|
+
}>;
|
|
9
|
+
findById(id: string | Types.ObjectId): import("mongoose").Query<import("mongoose").Document<unknown, {}, RoleDocument> & Role & import("mongoose").Document<any, any, any> & {
|
|
10
|
+
_id: Types.ObjectId;
|
|
11
|
+
}, import("mongoose").Document<unknown, {}, RoleDocument> & Role & import("mongoose").Document<any, any, any> & {
|
|
12
|
+
_id: Types.ObjectId;
|
|
13
|
+
}, {}, RoleDocument, "findOne">;
|
|
14
|
+
findByName(name: string): import("mongoose").Query<import("mongoose").Document<unknown, {}, RoleDocument> & Role & import("mongoose").Document<any, any, any> & {
|
|
15
|
+
_id: Types.ObjectId;
|
|
16
|
+
}, import("mongoose").Document<unknown, {}, RoleDocument> & Role & import("mongoose").Document<any, any, any> & {
|
|
17
|
+
_id: Types.ObjectId;
|
|
18
|
+
}, {}, RoleDocument, "findOne">;
|
|
19
|
+
list(): import("mongoose").Query<(import("mongoose").FlattenMaps<RoleDocument> & {
|
|
20
|
+
_id: Types.ObjectId;
|
|
21
|
+
})[], import("mongoose").Document<unknown, {}, RoleDocument> & Role & import("mongoose").Document<any, any, any> & {
|
|
22
|
+
_id: Types.ObjectId;
|
|
23
|
+
}, {}, RoleDocument, "find">;
|
|
24
|
+
updateById(id: string | Types.ObjectId, data: Partial<Role>): import("mongoose").Query<import("mongoose").Document<unknown, {}, RoleDocument> & Role & import("mongoose").Document<any, any, any> & {
|
|
25
|
+
_id: Types.ObjectId;
|
|
26
|
+
}, import("mongoose").Document<unknown, {}, RoleDocument> & Role & import("mongoose").Document<any, any, any> & {
|
|
27
|
+
_id: Types.ObjectId;
|
|
28
|
+
}, {}, RoleDocument, "findOneAndUpdate">;
|
|
29
|
+
deleteById(id: string | Types.ObjectId): import("mongoose").Query<import("mongoose").Document<unknown, {}, RoleDocument> & Role & import("mongoose").Document<any, any, any> & {
|
|
30
|
+
_id: Types.ObjectId;
|
|
31
|
+
}, import("mongoose").Document<unknown, {}, RoleDocument> & Role & import("mongoose").Document<any, any, any> & {
|
|
32
|
+
_id: Types.ObjectId;
|
|
33
|
+
}, {}, RoleDocument, "findOneAndDelete">;
|
|
34
|
+
findByIds(ids: string[]): import("mongoose").Query<(import("mongoose").FlattenMaps<RoleDocument> & {
|
|
35
|
+
_id: Types.ObjectId;
|
|
36
|
+
})[], import("mongoose").Document<unknown, {}, RoleDocument> & Role & import("mongoose").Document<any, any, any> & {
|
|
37
|
+
_id: Types.ObjectId;
|
|
38
|
+
}, {}, RoleDocument, "find">;
|
|
39
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
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.RoleRepository = void 0;
|
|
16
|
+
const common_1 = require("@nestjs/common");
|
|
17
|
+
const mongoose_1 = require("@nestjs/mongoose");
|
|
18
|
+
const role_model_1 = require("../models/role.model");
|
|
19
|
+
let RoleRepository = class RoleRepository {
|
|
20
|
+
constructor(roleModel) {
|
|
21
|
+
this.roleModel = roleModel;
|
|
22
|
+
}
|
|
23
|
+
create(data) {
|
|
24
|
+
return this.roleModel.create(data);
|
|
25
|
+
}
|
|
26
|
+
findById(id) {
|
|
27
|
+
return this.roleModel.findById(id);
|
|
28
|
+
}
|
|
29
|
+
findByName(name) {
|
|
30
|
+
return this.roleModel.findOne({ name });
|
|
31
|
+
}
|
|
32
|
+
list() {
|
|
33
|
+
return this.roleModel.find().populate('permissions').lean();
|
|
34
|
+
}
|
|
35
|
+
updateById(id, data) {
|
|
36
|
+
return this.roleModel.findByIdAndUpdate(id, data, { new: true });
|
|
37
|
+
}
|
|
38
|
+
deleteById(id) {
|
|
39
|
+
return this.roleModel.findByIdAndDelete(id);
|
|
40
|
+
}
|
|
41
|
+
findByIds(ids) {
|
|
42
|
+
return this.roleModel.find({ _id: { $in: ids } }).lean();
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
exports.RoleRepository = RoleRepository;
|
|
46
|
+
exports.RoleRepository = RoleRepository = __decorate([
|
|
47
|
+
(0, common_1.Injectable)(),
|
|
48
|
+
__param(0, (0, mongoose_1.InjectModel)(role_model_1.Role.name)),
|
|
49
|
+
__metadata("design:paramtypes", [Function])
|
|
50
|
+
], RoleRepository);
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { Model, Types } from 'mongoose';
|
|
2
|
+
import { User, UserDocument } from '../models/user.model';
|
|
3
|
+
export declare class UserRepository {
|
|
4
|
+
private readonly userModel;
|
|
5
|
+
constructor(userModel: Model<UserDocument>);
|
|
6
|
+
create(data: Partial<User>): Promise<import("mongoose").Document<unknown, {}, UserDocument> & User & import("mongoose").Document<any, any, any> & {
|
|
7
|
+
_id: Types.ObjectId;
|
|
8
|
+
}>;
|
|
9
|
+
findById(id: string | Types.ObjectId): import("mongoose").Query<import("mongoose").Document<unknown, {}, UserDocument> & User & import("mongoose").Document<any, any, any> & {
|
|
10
|
+
_id: Types.ObjectId;
|
|
11
|
+
}, import("mongoose").Document<unknown, {}, UserDocument> & User & import("mongoose").Document<any, any, any> & {
|
|
12
|
+
_id: Types.ObjectId;
|
|
13
|
+
}, {}, UserDocument, "findOne">;
|
|
14
|
+
findByEmail(email: string): import("mongoose").Query<import("mongoose").Document<unknown, {}, UserDocument> & User & import("mongoose").Document<any, any, any> & {
|
|
15
|
+
_id: Types.ObjectId;
|
|
16
|
+
}, import("mongoose").Document<unknown, {}, UserDocument> & User & import("mongoose").Document<any, any, any> & {
|
|
17
|
+
_id: Types.ObjectId;
|
|
18
|
+
}, {}, UserDocument, "findOne">;
|
|
19
|
+
findByEmailWithPassword(email: string): import("mongoose").Query<import("mongoose").Document<unknown, {}, UserDocument> & User & import("mongoose").Document<any, any, any> & {
|
|
20
|
+
_id: Types.ObjectId;
|
|
21
|
+
}, import("mongoose").Document<unknown, {}, UserDocument> & User & import("mongoose").Document<any, any, any> & {
|
|
22
|
+
_id: Types.ObjectId;
|
|
23
|
+
}, {}, UserDocument, "findOne">;
|
|
24
|
+
findByUsername(username: string): import("mongoose").Query<import("mongoose").Document<unknown, {}, UserDocument> & User & import("mongoose").Document<any, any, any> & {
|
|
25
|
+
_id: Types.ObjectId;
|
|
26
|
+
}, import("mongoose").Document<unknown, {}, UserDocument> & User & import("mongoose").Document<any, any, any> & {
|
|
27
|
+
_id: Types.ObjectId;
|
|
28
|
+
}, {}, UserDocument, "findOne">;
|
|
29
|
+
findByPhone(phoneNumber: string): import("mongoose").Query<import("mongoose").Document<unknown, {}, UserDocument> & User & import("mongoose").Document<any, any, any> & {
|
|
30
|
+
_id: Types.ObjectId;
|
|
31
|
+
}, import("mongoose").Document<unknown, {}, UserDocument> & User & import("mongoose").Document<any, any, any> & {
|
|
32
|
+
_id: Types.ObjectId;
|
|
33
|
+
}, {}, UserDocument, "findOne">;
|
|
34
|
+
updateById(id: string | Types.ObjectId, data: Partial<User>): import("mongoose").Query<import("mongoose").Document<unknown, {}, UserDocument> & User & import("mongoose").Document<any, any, any> & {
|
|
35
|
+
_id: Types.ObjectId;
|
|
36
|
+
}, import("mongoose").Document<unknown, {}, UserDocument> & User & import("mongoose").Document<any, any, any> & {
|
|
37
|
+
_id: Types.ObjectId;
|
|
38
|
+
}, {}, UserDocument, "findOneAndUpdate">;
|
|
39
|
+
deleteById(id: string | Types.ObjectId): import("mongoose").Query<import("mongoose").Document<unknown, {}, UserDocument> & User & import("mongoose").Document<any, any, any> & {
|
|
40
|
+
_id: Types.ObjectId;
|
|
41
|
+
}, import("mongoose").Document<unknown, {}, UserDocument> & User & import("mongoose").Document<any, any, any> & {
|
|
42
|
+
_id: Types.ObjectId;
|
|
43
|
+
}, {}, UserDocument, "findOneAndDelete">;
|
|
44
|
+
findByIdWithRolesAndPermissions(id: string | Types.ObjectId): import("mongoose").Query<import("mongoose").Document<unknown, {}, UserDocument> & User & import("mongoose").Document<any, any, any> & {
|
|
45
|
+
_id: Types.ObjectId;
|
|
46
|
+
}, import("mongoose").Document<unknown, {}, UserDocument> & User & import("mongoose").Document<any, any, any> & {
|
|
47
|
+
_id: Types.ObjectId;
|
|
48
|
+
}, {}, UserDocument, "findOne">;
|
|
49
|
+
list(filter: {
|
|
50
|
+
email?: string;
|
|
51
|
+
username?: string;
|
|
52
|
+
}): import("mongoose").Query<(import("mongoose").FlattenMaps<UserDocument> & {
|
|
53
|
+
_id: Types.ObjectId;
|
|
54
|
+
})[], import("mongoose").Document<unknown, {}, UserDocument> & User & import("mongoose").Document<any, any, any> & {
|
|
55
|
+
_id: Types.ObjectId;
|
|
56
|
+
}, {}, UserDocument, "find">;
|
|
57
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
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.UserRepository = void 0;
|
|
16
|
+
const common_1 = require("@nestjs/common");
|
|
17
|
+
const mongoose_1 = require("@nestjs/mongoose");
|
|
18
|
+
const user_model_1 = require("../models/user.model");
|
|
19
|
+
let UserRepository = class UserRepository {
|
|
20
|
+
constructor(userModel) {
|
|
21
|
+
this.userModel = userModel;
|
|
22
|
+
}
|
|
23
|
+
create(data) {
|
|
24
|
+
return this.userModel.create(data);
|
|
25
|
+
}
|
|
26
|
+
findById(id) {
|
|
27
|
+
return this.userModel.findById(id);
|
|
28
|
+
}
|
|
29
|
+
findByEmail(email) {
|
|
30
|
+
return this.userModel.findOne({ email });
|
|
31
|
+
}
|
|
32
|
+
findByEmailWithPassword(email) {
|
|
33
|
+
return this.userModel.findOne({ email }).select('+password');
|
|
34
|
+
}
|
|
35
|
+
findByUsername(username) {
|
|
36
|
+
return this.userModel.findOne({ username });
|
|
37
|
+
}
|
|
38
|
+
findByPhone(phoneNumber) {
|
|
39
|
+
return this.userModel.findOne({ phoneNumber });
|
|
40
|
+
}
|
|
41
|
+
updateById(id, data) {
|
|
42
|
+
return this.userModel.findByIdAndUpdate(id, data, { new: true });
|
|
43
|
+
}
|
|
44
|
+
deleteById(id) {
|
|
45
|
+
return this.userModel.findByIdAndDelete(id);
|
|
46
|
+
}
|
|
47
|
+
findByIdWithRolesAndPermissions(id) {
|
|
48
|
+
return this.userModel.findById(id).populate({
|
|
49
|
+
path: 'roles',
|
|
50
|
+
populate: { path: 'permissions', select: 'name' },
|
|
51
|
+
select: 'name permissions'
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
list(filter) {
|
|
55
|
+
const query = {};
|
|
56
|
+
if (filter.email)
|
|
57
|
+
query.email = filter.email;
|
|
58
|
+
if (filter.username)
|
|
59
|
+
query.username = filter.username;
|
|
60
|
+
return this.userModel
|
|
61
|
+
.find(query)
|
|
62
|
+
.populate({ path: 'roles', select: 'name' })
|
|
63
|
+
.lean();
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
exports.UserRepository = UserRepository;
|
|
67
|
+
exports.UserRepository = UserRepository = __decorate([
|
|
68
|
+
(0, common_1.Injectable)(),
|
|
69
|
+
__param(0, (0, mongoose_1.InjectModel)(user_model_1.User.name)),
|
|
70
|
+
__metadata("design:paramtypes", [Function])
|
|
71
|
+
], UserRepository);
|
|
@@ -0,0 +1,33 @@
|
|
|
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.AdminRoleService = void 0;
|
|
13
|
+
const common_1 = require("@nestjs/common");
|
|
14
|
+
const role_repository_1 = require("../repositories/role.repository");
|
|
15
|
+
let AdminRoleService = class AdminRoleService {
|
|
16
|
+
constructor(roles) {
|
|
17
|
+
this.roles = roles;
|
|
18
|
+
}
|
|
19
|
+
async loadAdminRoleId() {
|
|
20
|
+
if (this.adminRoleId)
|
|
21
|
+
return this.adminRoleId;
|
|
22
|
+
const admin = await this.roles.findByName('admin');
|
|
23
|
+
if (!admin)
|
|
24
|
+
throw new Error('Admin role not seeded.');
|
|
25
|
+
this.adminRoleId = admin._id.toString();
|
|
26
|
+
return this.adminRoleId;
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
exports.AdminRoleService = AdminRoleService;
|
|
30
|
+
exports.AdminRoleService = AdminRoleService = __decorate([
|
|
31
|
+
(0, common_1.Injectable)(),
|
|
32
|
+
__metadata("design:paramtypes", [role_repository_1.RoleRepository])
|
|
33
|
+
], AdminRoleService);
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { UserRepository } from '../repositories/user.repository';
|
|
2
|
+
import { RegisterDto } from '../dtos/auth/register.dto';
|
|
3
|
+
import { LoginDto } from '../dtos/auth/login.dto';
|
|
4
|
+
import { MailService } from './mail.service';
|
|
5
|
+
import { RoleRepository } from '../repositories/role.repository';
|
|
6
|
+
export declare class AuthService {
|
|
7
|
+
private readonly users;
|
|
8
|
+
private readonly mail;
|
|
9
|
+
private readonly roles;
|
|
10
|
+
constructor(users: UserRepository, mail: MailService, roles: RoleRepository);
|
|
11
|
+
private resolveExpiry;
|
|
12
|
+
private signAccessToken;
|
|
13
|
+
private signRefreshToken;
|
|
14
|
+
private signEmailToken;
|
|
15
|
+
private signResetToken;
|
|
16
|
+
private buildTokenPayload;
|
|
17
|
+
private getEnv;
|
|
18
|
+
issueTokensForUser(userId: string): Promise<{
|
|
19
|
+
accessToken: string;
|
|
20
|
+
refreshToken: string;
|
|
21
|
+
}>;
|
|
22
|
+
register(dto: RegisterDto): Promise<{
|
|
23
|
+
id: any;
|
|
24
|
+
email: string;
|
|
25
|
+
}>;
|
|
26
|
+
verifyEmail(token: string): Promise<{
|
|
27
|
+
ok: boolean;
|
|
28
|
+
}>;
|
|
29
|
+
resendVerification(email: string): Promise<{
|
|
30
|
+
ok: boolean;
|
|
31
|
+
}>;
|
|
32
|
+
login(dto: LoginDto): Promise<{
|
|
33
|
+
accessToken: string;
|
|
34
|
+
refreshToken: string;
|
|
35
|
+
}>;
|
|
36
|
+
refresh(refreshToken: string): Promise<{
|
|
37
|
+
accessToken: string;
|
|
38
|
+
refreshToken: string;
|
|
39
|
+
}>;
|
|
40
|
+
forgotPassword(email: string): Promise<{
|
|
41
|
+
ok: boolean;
|
|
42
|
+
}>;
|
|
43
|
+
resetPassword(token: string, newPassword: string): Promise<{
|
|
44
|
+
ok: boolean;
|
|
45
|
+
}>;
|
|
46
|
+
deleteAccount(userId: string): Promise<{
|
|
47
|
+
ok: boolean;
|
|
48
|
+
}>;
|
|
49
|
+
}
|