@duvdu-v1/duvdu 1.0.38 → 1.0.39
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/build/middlewares/auth.middleware.d.ts +1 -28
- package/build/middlewares/auth.middleware.js +15 -37
- package/build/middlewares/isAuthorized.middleware.d.ts +2 -1
- package/build/middlewares/isAuthorized.middleware.js +9 -6
- package/build/types/JwtPayload.d.ts +10 -1
- package/build/types/Permissions.d.ts +37 -0
- package/build/types/Permissions.js +73 -0
- package/build/types/model-names.d.ts +10 -0
- package/build/types/model-names.js +14 -0
- package/build/types/systemRoles.d.ts +5 -0
- package/build/types/systemRoles.js +9 -0
- package/package.json +1 -1
|
@@ -1,29 +1,2 @@
|
|
|
1
|
-
/// <reference types="qs" />
|
|
2
|
-
/// <reference types="mongoose/types/aggregate" />
|
|
3
|
-
/// <reference types="mongoose/types/callback" />
|
|
4
|
-
/// <reference types="mongoose/types/collection" />
|
|
5
|
-
/// <reference types="mongoose/types/connection" />
|
|
6
|
-
/// <reference types="mongoose/types/cursor" />
|
|
7
|
-
/// <reference types="mongoose/types/document" />
|
|
8
|
-
/// <reference types="mongoose/types/error" />
|
|
9
|
-
/// <reference types="mongoose/types/expressions" />
|
|
10
|
-
/// <reference types="mongoose/types/helpers" />
|
|
11
|
-
/// <reference types="mongoose/types/middlewares" />
|
|
12
|
-
/// <reference types="mongoose/types/indexes" />
|
|
13
|
-
/// <reference types="mongoose/types/models" />
|
|
14
|
-
/// <reference types="mongoose/types/mongooseoptions" />
|
|
15
|
-
/// <reference types="mongoose/types/pipelinestage" />
|
|
16
|
-
/// <reference types="mongoose/types/populate" />
|
|
17
|
-
/// <reference types="mongoose/types/query" />
|
|
18
|
-
/// <reference types="mongoose/types/schemaoptions" />
|
|
19
|
-
/// <reference types="mongoose/types/schematypes" />
|
|
20
|
-
/// <reference types="mongoose/types/session" />
|
|
21
|
-
/// <reference types="mongoose/types/types" />
|
|
22
|
-
/// <reference types="mongoose/types/utility" />
|
|
23
|
-
/// <reference types="mongoose/types/validation" />
|
|
24
|
-
/// <reference types="mongoose/types/virtuals" />
|
|
25
|
-
/// <reference types="mongoose/types/inferschematype" />
|
|
26
|
-
import 'express-async-errors';
|
|
27
1
|
import { RequestHandler } from 'express';
|
|
28
|
-
|
|
29
|
-
export declare const auth: (User: Model<any>, Roles: Model<any>) => RequestHandler<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>>;
|
|
2
|
+
export declare const isauthenticated: RequestHandler;
|
|
@@ -8,46 +8,24 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.
|
|
16
|
-
require("
|
|
17
|
-
const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
|
|
18
|
-
const generic_error_1 = require("../errors/generic-error");
|
|
12
|
+
exports.isauthenticated = void 0;
|
|
13
|
+
const jsonwebtoken_1 = require("jsonwebtoken");
|
|
19
14
|
const unauthenticated_error_1 = require("../errors/unauthenticated-error");
|
|
20
|
-
const
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
}
|
|
26
|
-
const user = yield User.findOne({ token: (_b = req.session) === null || _b === void 0 ? void 0 : _b.jwt });
|
|
27
|
-
if (!user) {
|
|
28
|
-
throw new unauthenticated_error_1.UnauthenticatedError();
|
|
29
|
-
}
|
|
30
|
-
if (!user.isVerified.value) {
|
|
31
|
-
throw new unauthenticated_error_1.UnauthenticatedError(`${user.isVerified.reason}`);
|
|
32
|
-
}
|
|
33
|
-
if (user.isBlocked) {
|
|
34
|
-
throw new generic_error_1.GenericError('the users access is denied due to their blocked status.');
|
|
35
|
-
}
|
|
15
|
+
const unauthorized_error_1 = require("../errors/unauthorized-error");
|
|
16
|
+
const isauthenticated = (req, res, next) => __awaiter(void 0, void 0, void 0, function* () {
|
|
17
|
+
if (!req.session.access)
|
|
18
|
+
return next(new unauthenticated_error_1.UnauthenticatedError('access token not found'));
|
|
19
|
+
let payload;
|
|
36
20
|
try {
|
|
37
|
-
|
|
38
|
-
req.loggedUser =
|
|
39
|
-
|
|
21
|
+
payload = (0, jsonwebtoken_1.verify)(req.session.access, process.env.JWT_KEY);
|
|
22
|
+
req.loggedUser = payload;
|
|
23
|
+
if (!req.loggedUser.isBlocked.value)
|
|
24
|
+
return next(new unauthorized_error_1.UnauthorizedError(`user is blocked:${req.loggedUser.isBlocked.reason}`));
|
|
40
25
|
}
|
|
41
26
|
catch (error) {
|
|
42
|
-
|
|
43
|
-
if (!role)
|
|
44
|
-
return next(new unauthenticated_error_1.UnauthenticatedError('user dont have role'));
|
|
45
|
-
const token = (0, generateToken_1.generateToken)({ id: user._id, permession: role.features });
|
|
46
|
-
req.loggedUser = { id: user._id, permession: role.features };
|
|
47
|
-
user.token = token;
|
|
48
|
-
yield user.save();
|
|
49
|
-
req.session.jwt = token;
|
|
50
|
-
next();
|
|
27
|
+
return res.status(423).json({ message: 'access token expired' });
|
|
51
28
|
}
|
|
52
|
-
|
|
53
|
-
|
|
29
|
+
next();
|
|
30
|
+
});
|
|
31
|
+
exports.isauthenticated = isauthenticated;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
/// <reference types="qs" />
|
|
2
2
|
import { RequestHandler } from 'express';
|
|
3
|
-
|
|
3
|
+
import { PERMISSIONS } from '../types/Permissions';
|
|
4
|
+
export declare const isauthorized: (permission: PERMISSIONS) => RequestHandler<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>>;
|
|
@@ -9,11 +9,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.
|
|
12
|
+
exports.isauthorized = void 0;
|
|
13
13
|
const unauthorized_error_1 = require("../errors/unauthorized-error");
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
const systemRoles_1 = require("../types/systemRoles");
|
|
15
|
+
const isauthorized = (permission) => ((req, res, next) => __awaiter(void 0, void 0, void 0, function* () {
|
|
16
|
+
if (req.loggedUser.role.key === systemRoles_1.SystemRoles.admin)
|
|
17
|
+
return next();
|
|
18
|
+
if (!req.loggedUser.role.permissions.includes(permission))
|
|
19
|
+
return next(new unauthorized_error_1.UnauthorizedError());
|
|
20
|
+
next();
|
|
18
21
|
}));
|
|
19
|
-
exports.
|
|
22
|
+
exports.isauthorized = isauthorized;
|
|
@@ -1,4 +1,13 @@
|
|
|
1
|
+
import { PERMISSIONS } from './Permissions';
|
|
1
2
|
export interface IjwtPayload {
|
|
2
3
|
id: string;
|
|
3
|
-
|
|
4
|
+
isVerified: boolean;
|
|
5
|
+
isBlocked: {
|
|
6
|
+
value: boolean;
|
|
7
|
+
reason?: string;
|
|
8
|
+
};
|
|
9
|
+
role: {
|
|
10
|
+
key: string;
|
|
11
|
+
permissions: PERMISSIONS[];
|
|
12
|
+
};
|
|
4
13
|
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export declare enum PERMISSIONS {
|
|
2
|
+
resetPassword = "resetPassword",
|
|
3
|
+
updatePhoneNumber = "updatePhoneNumber",
|
|
4
|
+
changePassword = "changePassword",
|
|
5
|
+
updateProfile = "updateProfile",
|
|
6
|
+
bookmarks = "bookmarks",
|
|
7
|
+
createCategory = "create-category",
|
|
8
|
+
updateCategory = "update-category",
|
|
9
|
+
removeCategory = "remove-category",
|
|
10
|
+
getAdminCategories = "get-gategories-admin",
|
|
11
|
+
createTicket = "create ticket",
|
|
12
|
+
getAllTickets = "get-all-tickets",
|
|
13
|
+
updateTicket = "update-ticket",
|
|
14
|
+
removeTicket = "remove-ticket",
|
|
15
|
+
getTicket = "get-ticket",
|
|
16
|
+
createTerm = "create-term",
|
|
17
|
+
updateTerm = "update-term",
|
|
18
|
+
createPlanHandler = "create plan",
|
|
19
|
+
updatePlanHandler = "update plan",
|
|
20
|
+
getPlanHandler = "get plan",
|
|
21
|
+
getAllPlansHandler = "get all plans",
|
|
22
|
+
removePlanHandler = "remove plan",
|
|
23
|
+
createRoleHandler = "create role",
|
|
24
|
+
updateRoleHandler = "update role",
|
|
25
|
+
getRolesHandler = "get roles",
|
|
26
|
+
getRoleHandler = "get role",
|
|
27
|
+
removeRoleHandler = "remove role"
|
|
28
|
+
}
|
|
29
|
+
export declare const permissions: {
|
|
30
|
+
auth: PERMISSIONS[];
|
|
31
|
+
bookmarks: PERMISSIONS[];
|
|
32
|
+
category: PERMISSIONS[];
|
|
33
|
+
ticket: PERMISSIONS[];
|
|
34
|
+
terms: PERMISSIONS[];
|
|
35
|
+
plans: PERMISSIONS[];
|
|
36
|
+
roles: PERMISSIONS[];
|
|
37
|
+
};
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.permissions = exports.PERMISSIONS = void 0;
|
|
4
|
+
var PERMISSIONS;
|
|
5
|
+
(function (PERMISSIONS) {
|
|
6
|
+
PERMISSIONS["resetPassword"] = "resetPassword";
|
|
7
|
+
PERMISSIONS["updatePhoneNumber"] = "updatePhoneNumber";
|
|
8
|
+
PERMISSIONS["changePassword"] = "changePassword";
|
|
9
|
+
PERMISSIONS["updateProfile"] = "updateProfile";
|
|
10
|
+
PERMISSIONS["bookmarks"] = "bookmarks";
|
|
11
|
+
PERMISSIONS["createCategory"] = "create-category";
|
|
12
|
+
PERMISSIONS["updateCategory"] = "update-category";
|
|
13
|
+
PERMISSIONS["removeCategory"] = "remove-category";
|
|
14
|
+
PERMISSIONS["getAdminCategories"] = "get-gategories-admin";
|
|
15
|
+
PERMISSIONS["createTicket"] = "create ticket";
|
|
16
|
+
PERMISSIONS["getAllTickets"] = "get-all-tickets";
|
|
17
|
+
PERMISSIONS["updateTicket"] = "update-ticket";
|
|
18
|
+
PERMISSIONS["removeTicket"] = "remove-ticket";
|
|
19
|
+
PERMISSIONS["getTicket"] = "get-ticket";
|
|
20
|
+
PERMISSIONS["createTerm"] = "create-term";
|
|
21
|
+
PERMISSIONS["updateTerm"] = "update-term";
|
|
22
|
+
// plan
|
|
23
|
+
PERMISSIONS["createPlanHandler"] = "create plan";
|
|
24
|
+
PERMISSIONS["updatePlanHandler"] = "update plan";
|
|
25
|
+
PERMISSIONS["getPlanHandler"] = "get plan";
|
|
26
|
+
PERMISSIONS["getAllPlansHandler"] = "get all plans";
|
|
27
|
+
PERMISSIONS["removePlanHandler"] = "remove plan";
|
|
28
|
+
// roles
|
|
29
|
+
PERMISSIONS["createRoleHandler"] = "create role";
|
|
30
|
+
PERMISSIONS["updateRoleHandler"] = "update role";
|
|
31
|
+
PERMISSIONS["getRolesHandler"] = "get roles";
|
|
32
|
+
PERMISSIONS["getRoleHandler"] = "get role";
|
|
33
|
+
PERMISSIONS["removeRoleHandler"] = "remove role";
|
|
34
|
+
})(PERMISSIONS || (exports.PERMISSIONS = PERMISSIONS = {}));
|
|
35
|
+
exports.permissions = {
|
|
36
|
+
auth: [
|
|
37
|
+
PERMISSIONS.resetPassword,
|
|
38
|
+
PERMISSIONS.updatePhoneNumber,
|
|
39
|
+
PERMISSIONS.changePassword,
|
|
40
|
+
PERMISSIONS.updateProfile,
|
|
41
|
+
],
|
|
42
|
+
bookmarks: [PERMISSIONS.bookmarks],
|
|
43
|
+
category: [
|
|
44
|
+
PERMISSIONS.createCategory,
|
|
45
|
+
PERMISSIONS.updateCategory,
|
|
46
|
+
PERMISSIONS.updateCategory,
|
|
47
|
+
PERMISSIONS.removeCategory,
|
|
48
|
+
PERMISSIONS.getAdminCategories,
|
|
49
|
+
],
|
|
50
|
+
ticket: [
|
|
51
|
+
PERMISSIONS.createTicket,
|
|
52
|
+
PERMISSIONS.getTicket,
|
|
53
|
+
PERMISSIONS.getAllTickets,
|
|
54
|
+
PERMISSIONS.removeTicket,
|
|
55
|
+
PERMISSIONS.updateTicket,
|
|
56
|
+
],
|
|
57
|
+
terms: [PERMISSIONS.createTerm, PERMISSIONS.updateTerm],
|
|
58
|
+
plans: [
|
|
59
|
+
PERMISSIONS.getPlanHandler,
|
|
60
|
+
PERMISSIONS.createPlanHandler,
|
|
61
|
+
PERMISSIONS.getAllPlansHandler,
|
|
62
|
+
PERMISSIONS.removePlanHandler,
|
|
63
|
+
PERMISSIONS.updatePlanHandler,
|
|
64
|
+
],
|
|
65
|
+
roles: [
|
|
66
|
+
PERMISSIONS.getRoleHandler,
|
|
67
|
+
PERMISSIONS.getRolesHandler,
|
|
68
|
+
PERMISSIONS.createRoleHandler,
|
|
69
|
+
PERMISSIONS.updateRoleHandler,
|
|
70
|
+
PERMISSIONS.updateRoleHandler,
|
|
71
|
+
PERMISSIONS.removeRoleHandler,
|
|
72
|
+
],
|
|
73
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MODELS = void 0;
|
|
4
|
+
var MODELS;
|
|
5
|
+
(function (MODELS) {
|
|
6
|
+
MODELS["user"] = "users";
|
|
7
|
+
MODELS["category"] = "categories";
|
|
8
|
+
MODELS["plan"] = "plans";
|
|
9
|
+
MODELS["project"] = "projects";
|
|
10
|
+
MODELS["role"] = "roles";
|
|
11
|
+
MODELS["bookmark"] = "bookmarks";
|
|
12
|
+
MODELS["term"] = "terms";
|
|
13
|
+
MODELS["ticket"] = "tickets";
|
|
14
|
+
})(MODELS || (exports.MODELS = MODELS = {}));
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SystemRoles = void 0;
|
|
4
|
+
var SystemRoles;
|
|
5
|
+
(function (SystemRoles) {
|
|
6
|
+
SystemRoles["verified"] = "verified";
|
|
7
|
+
SystemRoles["unverified"] = "unverified";
|
|
8
|
+
SystemRoles["admin"] = "admin";
|
|
9
|
+
})(SystemRoles || (exports.SystemRoles = SystemRoles = {}));
|