@volcanicminds/backend 2.0.0 → 2.0.2
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 +17 -0
- package/dist/lib/api/auth/controller/auth.js +1 -3
- package/dist/lib/api/auth/controller/auth.js.map +1 -1
- package/dist/lib/api/users/controller/user.js +41 -14
- package/dist/lib/api/users/controller/user.js.map +1 -1
- package/dist/lib/api/users/routes.js +27 -9
- package/dist/lib/api/users/routes.js.map +1 -1
- package/dist/lib/config/general.js +1 -0
- package/dist/lib/config/general.js.map +1 -1
- package/dist/lib/hooks/onRequest.js +55 -32
- package/dist/lib/hooks/onRequest.js.map +1 -1
- package/dist/lib/loader/general.js +1 -0
- package/dist/lib/loader/general.js.map +1 -1
- package/dist/lib/schemas/user.js +9 -1
- package/dist/lib/schemas/user.js.map +1 -1
- package/dist/package-lock.json +16 -38
- package/dist/package.json +1 -1
- package/lib/api/auth/controller/auth.ts +1 -3
- package/lib/api/users/controller/user.ts +35 -13
- package/lib/api/users/routes.ts +27 -9
- package/lib/config/general.ts +1 -0
- package/lib/hooks/onRequest.ts +73 -36
- package/lib/loader/general.ts +1 -0
- package/lib/schemas/user.ts +9 -0
- package/package.json +1 -1
- package/types/global.d.ts +1 -0
package/README.md
CHANGED
|
@@ -680,6 +680,23 @@ module.exports = {
|
|
|
680
680
|
}
|
|
681
681
|
```
|
|
682
682
|
|
|
683
|
+
## Disable embedded authorization
|
|
684
|
+
|
|
685
|
+
Out-of-the-box, the framework automatically secures all routes by checking for a valid (Bearer) JWT token if roles are defined for that route. However, if you want to disable this automatic authorization check and handle it manually within your controllers or middleware, you can do so by setting the `embedded_auth` option to `false`.
|
|
686
|
+
|
|
687
|
+
```ts
|
|
688
|
+
// src/config/general.ts
|
|
689
|
+
'use strict'
|
|
690
|
+
|
|
691
|
+
module.exports = {
|
|
692
|
+
name: 'general',
|
|
693
|
+
enable: true,
|
|
694
|
+
options: {
|
|
695
|
+
embedded_auth: false
|
|
696
|
+
}
|
|
697
|
+
}
|
|
698
|
+
```
|
|
699
|
+
|
|
683
700
|
## Job Scheduler
|
|
684
701
|
|
|
685
702
|
It's possible to add a job scheduler. For more information, go to [Fastify Schedule](https://github.com/fastify/fastify-schedule). To enable this feature, it's necessary to add or change the property `scheduler` to `true` (the default is `false`).
|
|
@@ -262,9 +262,7 @@ function login(req, reply) {
|
|
|
262
262
|
}
|
|
263
263
|
const isPasswordToBeChanged = req.server['userManager'].isPasswordToBeChanged(user);
|
|
264
264
|
if (isPasswordToBeChanged) {
|
|
265
|
-
return reply
|
|
266
|
-
.status(403)
|
|
267
|
-
.send({ statusCode: 403, code: 'PASSWORD_TO_BE_CHANGED', message: 'The password is expired' });
|
|
265
|
+
return reply.status(403).send({ statusCode: 403, code: 'PASSWORD_TO_BE_CHANGED', message: 'Password is expired' });
|
|
268
266
|
}
|
|
269
267
|
if (user.blocked) {
|
|
270
268
|
return reply.status(403).send(new Error('User blocked'));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../../../lib/api/auth/controller/auth.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../../../lib/api/auth/controller/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,8 +20,6 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
20
20
|
return t;
|
|
21
21
|
};
|
|
22
22
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
|
-
exports.currentUser = currentUser;
|
|
24
|
-
exports.isAdmin = isAdmin;
|
|
25
23
|
exports.getRoles = getRoles;
|
|
26
24
|
exports.count = count;
|
|
27
25
|
exports.find = find;
|
|
@@ -29,17 +27,14 @@ exports.findOne = findOne;
|
|
|
29
27
|
exports.create = create;
|
|
30
28
|
exports.update = update;
|
|
31
29
|
exports.remove = remove;
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
}
|
|
36
|
-
function isAdmin(req, reply) {
|
|
37
|
-
const user = req.user;
|
|
38
|
-
reply.send({ isAdmin: (user === null || user === void 0 ? void 0 : user.getId()) && req.hasRole(roles.admin) });
|
|
39
|
-
}
|
|
30
|
+
exports.getCurrentUser = getCurrentUser;
|
|
31
|
+
exports.updateCurrentUser = updateCurrentUser;
|
|
32
|
+
exports.isAdmin = isAdmin;
|
|
40
33
|
function getRoles(req, reply) {
|
|
41
|
-
|
|
42
|
-
|
|
34
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
35
|
+
const allRoles = Object.keys(roles).map((key) => roles[key]);
|
|
36
|
+
return reply.send(allRoles);
|
|
37
|
+
});
|
|
43
38
|
}
|
|
44
39
|
function count(req, reply) {
|
|
45
40
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -61,14 +56,23 @@ function findOne(req, reply) {
|
|
|
61
56
|
}
|
|
62
57
|
function create(req, reply) {
|
|
63
58
|
return __awaiter(this, void 0, void 0, function* () {
|
|
64
|
-
|
|
59
|
+
var _a;
|
|
60
|
+
if (!req.hasRole(roles.admin)) {
|
|
61
|
+
return reply.status(403).send(Error('Only admins can create users'));
|
|
62
|
+
}
|
|
63
|
+
const _b = req.data(), { id } = _b, data = __rest(_b, ["id"]);
|
|
64
|
+
if (data.roles && data.roles.includes(roles.admin)) {
|
|
65
|
+
if (!config.enable || ((_a = config.options) === null || _a === void 0 ? void 0 : _a.allow_multiple_admin) !== true) {
|
|
66
|
+
return reply.status(403).send(Error('Cannot assign admin role to a user'));
|
|
67
|
+
}
|
|
68
|
+
}
|
|
65
69
|
const user = yield req.server['userManager'].createUser(data);
|
|
66
70
|
return user ? entity.User.save(user) : reply.status(400).send(Error('User not creatable'));
|
|
67
71
|
});
|
|
68
72
|
}
|
|
69
73
|
function update(req, reply) {
|
|
70
74
|
return __awaiter(this, void 0, void 0, function* () {
|
|
71
|
-
const _a = req.
|
|
75
|
+
const _a = req.data(), { id } = _a, userData = __rest(_a, ["id"]);
|
|
72
76
|
if (!id) {
|
|
73
77
|
return reply.status(400).send('Missing required id parameter');
|
|
74
78
|
}
|
|
@@ -84,4 +88,27 @@ function remove(req, reply) {
|
|
|
84
88
|
return yield req.server['userManager'].deleteUser(id);
|
|
85
89
|
});
|
|
86
90
|
}
|
|
91
|
+
function getCurrentUser(req, reply) {
|
|
92
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
93
|
+
const user = req.user;
|
|
94
|
+
return reply.send(user ? Object.assign(Object.assign({}, user), { roles: req.roles() }) : {});
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
function updateCurrentUser(req, reply) {
|
|
98
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
99
|
+
const user = req.user;
|
|
100
|
+
const id = user === null || user === void 0 ? void 0 : user.getId();
|
|
101
|
+
if (!id) {
|
|
102
|
+
return reply.status(403).send('Cannot update current user');
|
|
103
|
+
}
|
|
104
|
+
const _a = req.data(), { id: _id } = _a, userData = __rest(_a, ["id"]);
|
|
105
|
+
return yield req.server['userManager'].updateUserById(id, userData);
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
function isAdmin(req, reply) {
|
|
109
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
110
|
+
const user = req.user;
|
|
111
|
+
return reply.send({ isAdmin: (user === null || user === void 0 ? void 0 : user.getId()) && req.hasRole(roles.admin) });
|
|
112
|
+
});
|
|
113
|
+
}
|
|
87
114
|
//# sourceMappingURL=user.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../../../../lib/api/users/controller/user.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAGA,
|
|
1
|
+
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../../../../lib/api/users/controller/user.ts"],"names":[],"mappings":"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"}
|
|
@@ -65,9 +65,9 @@ module.exports = {
|
|
|
65
65
|
{
|
|
66
66
|
method: 'GET',
|
|
67
67
|
path: '/:id',
|
|
68
|
-
roles: [],
|
|
68
|
+
roles: [roles.admin],
|
|
69
69
|
handler: 'user.findOne',
|
|
70
|
-
middlewares: [],
|
|
70
|
+
middlewares: ['global.isAuthenticated'],
|
|
71
71
|
config: {
|
|
72
72
|
title: 'Find user',
|
|
73
73
|
description: 'Get user by id',
|
|
@@ -83,9 +83,9 @@ module.exports = {
|
|
|
83
83
|
{
|
|
84
84
|
method: 'PUT',
|
|
85
85
|
path: '/:id',
|
|
86
|
-
roles: [],
|
|
86
|
+
roles: [roles.admin],
|
|
87
87
|
handler: 'user.update',
|
|
88
|
-
middlewares: [],
|
|
88
|
+
middlewares: ['global.isAuthenticated'],
|
|
89
89
|
config: {
|
|
90
90
|
title: 'Update user',
|
|
91
91
|
description: 'Updates a user by id',
|
|
@@ -102,9 +102,9 @@ module.exports = {
|
|
|
102
102
|
{
|
|
103
103
|
method: 'POST',
|
|
104
104
|
path: '/',
|
|
105
|
-
roles: [],
|
|
105
|
+
roles: [roles.admin],
|
|
106
106
|
handler: 'user.create',
|
|
107
|
-
middlewares: [],
|
|
107
|
+
middlewares: ['global.isAuthenticated'],
|
|
108
108
|
config: {
|
|
109
109
|
title: 'Create a user',
|
|
110
110
|
description: 'Creates a new user',
|
|
@@ -120,9 +120,9 @@ module.exports = {
|
|
|
120
120
|
{
|
|
121
121
|
method: 'DELETE',
|
|
122
122
|
path: '/:id',
|
|
123
|
-
roles: [],
|
|
123
|
+
roles: [roles.admin],
|
|
124
124
|
handler: 'user.remove',
|
|
125
|
-
middlewares: [],
|
|
125
|
+
middlewares: ['global.isAuthenticated'],
|
|
126
126
|
config: {
|
|
127
127
|
title: 'Delete user',
|
|
128
128
|
description: 'Deletes user by id',
|
|
@@ -139,7 +139,7 @@ module.exports = {
|
|
|
139
139
|
method: 'GET',
|
|
140
140
|
path: '/me',
|
|
141
141
|
roles: [],
|
|
142
|
-
handler: 'user.
|
|
142
|
+
handler: 'user.getCurrentUser',
|
|
143
143
|
middlewares: ['global.isAuthenticated'],
|
|
144
144
|
config: {
|
|
145
145
|
title: 'Get current user',
|
|
@@ -149,6 +149,24 @@ module.exports = {
|
|
|
149
149
|
}
|
|
150
150
|
}
|
|
151
151
|
},
|
|
152
|
+
{
|
|
153
|
+
method: 'PUT',
|
|
154
|
+
path: '/me',
|
|
155
|
+
roles: [],
|
|
156
|
+
handler: 'user.updateCurrentUser',
|
|
157
|
+
middlewares: ['global.isAuthenticated'],
|
|
158
|
+
config: {
|
|
159
|
+
title: 'Update current user',
|
|
160
|
+
description: 'Update current user',
|
|
161
|
+
body: { $ref: 'currentUserBodySchema#' },
|
|
162
|
+
response: {
|
|
163
|
+
200: {
|
|
164
|
+
description: 'Default response',
|
|
165
|
+
$ref: 'userSchema#'
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
},
|
|
152
170
|
{
|
|
153
171
|
method: 'GET',
|
|
154
172
|
path: '/is-admin',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../../lib/api/users/routes.ts"],"names":[],"mappings":";AAAA,MAAM,CAAC,OAAO,GAAG;IACf,MAAM,EAAE;QACN,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,gBAAgB;QAC7B,UAAU,EAAE,YAAY;QACxB,IAAI,EAAE,CAAC,OAAO,CAAC;QACf,OAAO,EAAE,KAAK;KACf;IACD,MAAM,EAAE;QACN;YACE,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,GAAG;YACT,KAAK,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;YACpB,OAAO,EAAE,WAAW;YACpB,WAAW,EAAE,CAAC,wBAAwB,CAAC;YACvC,MAAM,EAAE;gBACN,KAAK,EAAE,YAAY;gBACnB,WAAW,EAAE,WAAW;gBACxB,KAAK,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE;gBACvC,QAAQ,EAAE;oBACR,GAAG,EAAE;wBACH,WAAW,EAAE,kBAAkB;wBAC/B,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE;qBAC/B;iBACF;aACF;SACF;QACD;YACE,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;YACpB,OAAO,EAAE,YAAY;YACrB,WAAW,EAAE,CAAC,wBAAwB,CAAC;YACvC,MAAM,EAAE;gBACN,KAAK,EAAE,aAAa;gBACpB,WAAW,EAAE,aAAa;gBAC1B,QAAQ,EAAE;oBACR,GAAG,EAAE;wBACH,WAAW,EAAE,kBAAkB;wBAC/B,IAAI,EAAE,QAAQ;qBACf;iBACF;aACF;SACF;QACD;YACE,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;YACpB,OAAO,EAAE,eAAe;YACxB,WAAW,EAAE,CAAC,wBAAwB,CAAC;YACvC,MAAM,EAAE;gBACN,KAAK,EAAE,eAAe;gBACtB,WAAW,EAAE,eAAe;gBAC5B,QAAQ,EAAE;oBACR,GAAG,EAAE;wBACH,WAAW,EAAE,kBAAkB;wBAC/B,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE;qBAC/B;iBACF;aACF;SACF;QACD;YACE,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../../lib/api/users/routes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"general.js","sourceRoot":"","sources":["../../../lib/config/general.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,MAAM,CAAC,OAAO,GAAG;IACf,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE;QACP,0BAA0B,EAAE,KAAK;QACjC,SAAS,EAAE,KAAK;QAChB,aAAa,EAAE,IAAI;KACpB;CACF,CAAA"}
|
|
1
|
+
{"version":3,"file":"general.js","sourceRoot":"","sources":["../../../lib/config/general.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,MAAM,CAAC,OAAO,GAAG;IACf,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE;QACP,oBAAoB,EAAE,KAAK;QAC3B,0BAA0B,EAAE,KAAK;QACjC,SAAS,EAAE,KAAK;QAChB,aAAa,EAAE,IAAI;KACpB;CACF,CAAA"}
|
|
@@ -12,62 +12,85 @@ var _a;
|
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
13
|
const common_1 = require("../util/common");
|
|
14
14
|
const { embedded_auth = true } = ((_a = global.config) === null || _a === void 0 ? void 0 : _a.options) || {};
|
|
15
|
+
const normalizeRoles = (rolesArray) => {
|
|
16
|
+
if (!rolesArray || rolesArray.length === 0) {
|
|
17
|
+
return [roles.public.code];
|
|
18
|
+
}
|
|
19
|
+
const firstElement = rolesArray[0];
|
|
20
|
+
if (typeof firstElement === 'string') {
|
|
21
|
+
return rolesArray;
|
|
22
|
+
}
|
|
23
|
+
if (typeof firstElement === 'object' && firstElement !== null && 'code' in firstElement) {
|
|
24
|
+
return rolesArray.map((role) => role.code);
|
|
25
|
+
}
|
|
26
|
+
return [roles.public.code];
|
|
27
|
+
};
|
|
15
28
|
module.exports = (req, reply) => __awaiter(void 0, void 0, void 0, function* () {
|
|
16
|
-
var _a, _b, _c, _d, _e, _f, _g;
|
|
29
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
17
30
|
log.i && (req.startedAt = new Date());
|
|
18
31
|
req.data = () => (0, common_1.getData)(req);
|
|
19
32
|
req.parameters = () => (0, common_1.getParams)(req);
|
|
20
33
|
if (embedded_auth) {
|
|
21
|
-
req.roles = () =>
|
|
22
|
-
req.hasRole = (r) =>
|
|
34
|
+
req.roles = () => [roles.public.code];
|
|
35
|
+
req.hasRole = (r) => req.roles().includes(r === null || r === void 0 ? void 0 : r.code);
|
|
23
36
|
const auth = ((_a = req.headers) === null || _a === void 0 ? void 0 : _a.authorization) || '';
|
|
24
37
|
const cfg = ((_b = req.routeOptions) === null || _b === void 0 ? void 0 : _b.config) || req.routeConfig || {};
|
|
25
38
|
const [prefix, bearerToken] = auth.split(' ');
|
|
26
39
|
if (prefix === 'Bearer' && bearerToken != null) {
|
|
27
|
-
let user = null;
|
|
28
|
-
let token = null;
|
|
29
40
|
try {
|
|
30
41
|
const tokenData = reply.server.jwt.verify(bearerToken);
|
|
31
|
-
|
|
32
|
-
if (!
|
|
33
|
-
|
|
34
|
-
}
|
|
35
|
-
if (!user && !token) {
|
|
36
|
-
return reply.status(404).send({ statusCode: 404, code: 'USER_NOT_FOUND', message: 'User not found' });
|
|
42
|
+
const subjectId = tokenData === null || tokenData === void 0 ? void 0 : tokenData.sub;
|
|
43
|
+
if (!subjectId) {
|
|
44
|
+
throw new Error('Invalid token subject');
|
|
37
45
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
46
|
+
let user = null;
|
|
47
|
+
let token = null;
|
|
48
|
+
if ((_c = req.server['userManager']) === null || _c === void 0 ? void 0 : _c.isImplemented()) {
|
|
49
|
+
user = yield req.server['userManager'].retrieveUserByExternalId(subjectId);
|
|
50
|
+
if (user) {
|
|
51
|
+
const isValid = yield req.server['userManager'].isValidUser(user);
|
|
52
|
+
if (!isValid) {
|
|
53
|
+
return reply
|
|
54
|
+
.status(403)
|
|
55
|
+
.send({ statusCode: 403, code: 'USER_NOT_VALID', message: 'User is not valid or blocked' });
|
|
56
|
+
}
|
|
57
|
+
req.user = user;
|
|
42
58
|
}
|
|
43
|
-
req.user = user;
|
|
44
59
|
}
|
|
45
|
-
if (
|
|
46
|
-
|
|
47
|
-
if (
|
|
48
|
-
|
|
60
|
+
if (!user && ((_d = req.server['tokenManager']) === null || _d === void 0 ? void 0 : _d.isImplemented())) {
|
|
61
|
+
token = yield req.server['tokenManager'].retrieveTokenByExternalId(subjectId);
|
|
62
|
+
if (token) {
|
|
63
|
+
const isValid = yield req.server['tokenManager'].isValidToken(token);
|
|
64
|
+
if (!isValid) {
|
|
65
|
+
return reply
|
|
66
|
+
.status(403)
|
|
67
|
+
.send({ statusCode: 403, code: 'TOKEN_NOT_VALID', message: 'Token is not valid or blocked' });
|
|
68
|
+
}
|
|
69
|
+
req.token = token;
|
|
49
70
|
}
|
|
50
|
-
req.token = token;
|
|
51
71
|
}
|
|
72
|
+
if (!req.user && !req.token) {
|
|
73
|
+
return reply.status(404).send({ statusCode: 404, code: 'SUBJECT_NOT_FOUND', message: 'Subject not found' });
|
|
74
|
+
}
|
|
75
|
+
const freshNormalizedRoles = normalizeRoles(((_e = req.user) === null || _e === void 0 ? void 0 : _e.roles) || ((_f = req.token) === null || _f === void 0 ? void 0 : _f.roles));
|
|
76
|
+
req.roles = () => freshNormalizedRoles;
|
|
52
77
|
}
|
|
53
78
|
catch (error) {
|
|
54
79
|
const isRoutePublic = (cfg.requiredRoles || []).some((role) => role.code === roles.public.code);
|
|
55
80
|
if (!isRoutePublic) {
|
|
56
|
-
|
|
81
|
+
return reply
|
|
82
|
+
.status(401)
|
|
83
|
+
.send({ statusCode: 401, code: 'UNAUTHORIZED', message: error.message || 'Invalid or expired token' });
|
|
57
84
|
}
|
|
58
85
|
}
|
|
59
86
|
}
|
|
60
|
-
if (((
|
|
87
|
+
if (((_g = cfg.requiredRoles) === null || _g === void 0 ? void 0 : _g.length) > 0) {
|
|
61
88
|
const { method = '', url = '', requiredRoles } = cfg;
|
|
62
|
-
const
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
log.w && log.warn(`Not allowed to call ${method.toUpperCase()} ${url}`);
|
|
68
|
-
return reply
|
|
69
|
-
.status(403)
|
|
70
|
-
.send({ statusCode: 403, code: 'ROLE_NOT_ALLOWED', message: 'Not allowed to call this route' });
|
|
89
|
+
const authorizedRoles = req.roles();
|
|
90
|
+
const hasPermission = requiredRoles.some((r) => authorizedRoles.includes(r.code));
|
|
91
|
+
if (!hasPermission) {
|
|
92
|
+
log.w && log.warn(`Forbidden: ${((_h = req.user) === null || _h === void 0 ? void 0 : _h.email) || 'anonymous'} cannot call ${method.toUpperCase()} ${url}`);
|
|
93
|
+
return reply.status(403).send({ statusCode: 403, code: 'FORBIDDEN', message: 'Authorization denied' });
|
|
71
94
|
}
|
|
72
95
|
}
|
|
73
96
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onRequest.js","sourceRoot":"","sources":["../../../lib/hooks/onRequest.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAmD;AAGnD,MAAM,EAAE,aAAa,GAAG,IAAI,EAAE,GAAG,CAAA,MAAA,MAAM,CAAC,MAAM,0CAAE,OAAO,KAAI,EAAE,CAAA;AAE7D,MAAM,
|
|
1
|
+
{"version":3,"file":"onRequest.js","sourceRoot":"","sources":["../../../lib/hooks/onRequest.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAmD;AAGnD,MAAM,EAAE,aAAa,GAAG,IAAI,EAAE,GAAG,CAAA,MAAA,MAAM,CAAC,MAAM,0CAAE,OAAO,KAAI,EAAE,CAAA;AAE7D,MAAM,cAAc,GAAG,CAAC,UAA6B,EAAY,EAAE;IACjE,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3C,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC5B,CAAC;IAGD,MAAM,YAAY,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;IAClC,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;QACrC,OAAO,UAAsB,CAAA;IAC/B,CAAC;IAED,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,KAAK,IAAI,IAAI,MAAM,IAAI,YAAY,EAAE,CAAC;QACxF,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,IAAU,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAClD,CAAC;IAGD,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;AAC5B,CAAC,CAAA;AAED,MAAM,CAAC,OAAO,GAAG,CAAO,GAAG,EAAE,KAAK,EAAE,EAAE;;IACpC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,CAAA;IAGrC,GAAG,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC,IAAA,gBAAO,EAAC,GAAG,CAAC,CAAA;IAC7B,GAAG,CAAC,UAAU,GAAG,GAAG,EAAE,CAAC,IAAA,kBAAS,EAAC,GAAG,CAAC,CAAA;IAErC,IAAI,aAAa,EAAE,CAAC;QAElB,GAAG,CAAC,KAAK,GAAG,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACrC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAO,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,IAAI,CAAC,CAAA;QAExD,MAAM,IAAI,GAAG,CAAA,MAAA,GAAG,CAAC,OAAO,0CAAE,aAAa,KAAI,EAAE,CAAA;QAC7C,MAAM,GAAG,GAAG,CAAA,MAAA,GAAG,CAAC,YAAY,0CAAE,MAAM,KAAI,GAAG,CAAC,WAAW,IAAI,EAAE,CAAA;QAC7D,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAE7C,IAAI,MAAM,KAAK,QAAQ,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;YAC/C,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;gBACtD,MAAM,SAAS,GAAG,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,GAAG,CAAA;gBAEhC,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAA;gBAC1C,CAAC;gBAED,IAAI,IAAI,GAA6B,IAAI,CAAA;gBACzC,IAAI,KAAK,GAA8B,IAAI,CAAA;gBAG3C,IAAI,MAAA,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,0CAAE,aAAa,EAAE,EAAE,CAAC;oBAC/C,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAA;oBAC1E,IAAI,IAAI,EAAE,CAAC;wBACT,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;wBACjE,IAAI,CAAC,OAAO,EAAE,CAAC;4BACb,OAAO,KAAK;iCACT,MAAM,CAAC,GAAG,CAAC;iCACX,IAAI,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,8BAA8B,EAAE,CAAC,CAAA;wBAC/F,CAAC;wBACD,GAAG,CAAC,IAAI,GAAG,IAAI,CAAA;oBACjB,CAAC;gBACH,CAAC;gBAGD,IAAI,CAAC,IAAI,KAAI,MAAA,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,0CAAE,aAAa,EAAE,CAAA,EAAE,CAAC;oBACzD,KAAK,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAA;oBAC7E,IAAI,KAAK,EAAE,CAAC;wBACV,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;wBACpE,IAAI,CAAC,OAAO,EAAE,CAAC;4BACb,OAAO,KAAK;iCACT,MAAM,CAAC,GAAG,CAAC;iCACX,IAAI,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,+BAA+B,EAAE,CAAC,CAAA;wBACjG,CAAC;wBACD,GAAG,CAAC,KAAK,GAAG,KAAK,CAAA;oBACnB,CAAC;gBACH,CAAC;gBAED,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;oBAC5B,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,CAAA;gBAC7G,CAAC;gBAGD,MAAM,oBAAoB,GAAG,cAAc,CAAC,CAAA,MAAA,GAAG,CAAC,IAAI,0CAAE,KAAK,MAAI,MAAA,GAAG,CAAC,KAAK,0CAAE,KAAK,CAAA,CAAC,CAAA;gBAChF,GAAG,CAAC,KAAK,GAAG,GAAG,EAAE,CAAC,oBAAoB,CAAA;YACxC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,aAAa,GAAG,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAU,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;gBACrG,IAAI,CAAC,aAAa,EAAE,CAAC;oBACnB,OAAO,KAAK;yBACT,MAAM,CAAC,GAAG,CAAC;yBACX,IAAI,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,0BAA0B,EAAE,CAAC,CAAA;gBAC1G,CAAC;YACH,CAAC;QACH,CAAC;QAGD,IAAI,CAAA,MAAA,GAAG,CAAC,aAAa,0CAAE,MAAM,IAAG,CAAC,EAAE,CAAC;YAClC,MAAM,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,aAAa,EAAE,GAAG,GAAG,CAAA;YACpD,MAAM,eAAe,GAAa,GAAG,CAAC,KAAK,EAAE,CAAA;YAE7C,MAAM,aAAa,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;YAEjF,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,cAAc,CAAA,MAAA,GAAG,CAAC,IAAI,0CAAE,KAAK,KAAI,WAAW,gBAAgB,MAAM,CAAC,WAAW,EAAE,IAAI,GAAG,EAAE,CAAC,CAAA;gBAC5G,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC,CAAA;YACxG,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC,CAAA,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"general.js","sourceRoot":"","sources":["../../../lib/loader/general.ts"],"names":[],"mappings":";;AAIA,
|
|
1
|
+
{"version":3,"file":"general.js","sourceRoot":"","sources":["../../../lib/loader/general.ts"],"names":[],"mappings":";;AAIA,oBA8BC;AAjCD,uCAAgD;AAChD,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAE5B,SAAgB,IAAI;IAClB,MAAM,aAAa,GAAkB;QACnC,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE;YACP,oBAAoB,EAAE,KAAK;YAC3B,0BAA0B,EAAE,KAAK;YACjC,SAAS,EAAE,KAAK;YAChB,aAAa,EAAE,IAAI;SACpB;KACF,CAAA;IAED,MAAM,QAAQ,GAAG,IAAA,wBAAiB,EAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAA;IAC7G,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3B,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,cAAc,GAAG,OAAO,CAAC,CAAA;QAC5C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAS,EAAE,EAAE;YACvC,MAAM,MAAM,GAAkB,OAAO,CAAC,CAAC,CAAC,CAAA;YAExC,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,CAAC,IAAI,EAAE,CAAC;gBACvC,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;gBACpC,aAAa,CAAC,OAAO,mCAChB,aAAa,CAAC,OAAO,GACrB,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAC1B,CAAA;YACH,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAA;IAClD,OAAO,aAAa,CAAA;AACtB,CAAC"}
|
package/dist/lib/schemas/user.js
CHANGED
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.roleSchema = exports.isAdminSchema = exports.userSchema = exports.userBodySchema = void 0;
|
|
3
|
+
exports.roleSchema = exports.isAdminSchema = exports.userSchema = exports.userBodySchema = exports.currentUserBodySchema = void 0;
|
|
4
|
+
exports.currentUserBodySchema = {
|
|
5
|
+
$id: 'currentUserBodySchema',
|
|
6
|
+
type: 'object',
|
|
7
|
+
nullable: true,
|
|
8
|
+
properties: {
|
|
9
|
+
username: { type: 'string' }
|
|
10
|
+
}
|
|
11
|
+
};
|
|
4
12
|
exports.userBodySchema = {
|
|
5
13
|
$id: 'userBodySchema',
|
|
6
14
|
type: 'object',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../../lib/schemas/user.ts"],"names":[],"mappings":";;;AAAa,QAAA,cAAc,GAAG;IAC5B,GAAG,EAAE,gBAAgB;IACrB,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE;QACV,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC5B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACzB,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAC5B,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACjC,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC7B,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAC9B,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC/B,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;KACpD;CACF,CAAA;AAEY,QAAA,UAAU,GAAG;IACxB,GAAG,EAAE,YAAY;IACjB,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE;QACV,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACtB,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC9B,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC5B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACzB,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAC5B,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACjC,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC7B,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAC9B,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC/B,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;QACnD,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC7B,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC3B,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KAC9B;CACF,CAAA;AAEY,QAAA,aAAa,GAAG;IAC3B,GAAG,EAAE,eAAe;IACpB,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE;QACV,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;KAC7B;CACF,CAAA;AAEY,QAAA,UAAU,GAAG;IACxB,GAAG,EAAE,YAAY;IACjB,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE;QACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACxB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACxB,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KAChC;CACF,CAAA"}
|
|
1
|
+
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../../lib/schemas/user.ts"],"names":[],"mappings":";;;AAAa,QAAA,qBAAqB,GAAG;IACnC,GAAG,EAAE,uBAAuB;IAC5B,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE;QACV,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KAC7B;CACF,CAAA;AAEY,QAAA,cAAc,GAAG;IAC5B,GAAG,EAAE,gBAAgB;IACrB,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE;QACV,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC5B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACzB,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAC5B,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACjC,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC7B,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAC9B,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC/B,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;KACpD;CACF,CAAA;AAEY,QAAA,UAAU,GAAG;IACxB,GAAG,EAAE,YAAY;IACjB,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE;QACV,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACtB,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC9B,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC5B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACzB,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAC5B,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACjC,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC7B,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAC9B,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC/B,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;QACnD,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC7B,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC3B,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KAC9B;CACF,CAAA;AAEY,QAAA,aAAa,GAAG;IAC3B,GAAG,EAAE,eAAe;IACpB,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE;QACV,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;KAC7B;CACF,CAAA;AAEY,QAAA,UAAU,GAAG;IACxB,GAAG,EAAE,YAAY;IACjB,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE;QACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACxB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACxB,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KAChC;CACF,CAAA"}
|
package/dist/package-lock.json
CHANGED
|
@@ -404,9 +404,9 @@
|
|
|
404
404
|
"license": "MIT"
|
|
405
405
|
},
|
|
406
406
|
"node_modules/@fastify/compress": {
|
|
407
|
-
"version": "8.
|
|
408
|
-
"resolved": "https://registry.npmjs.org/@fastify/compress/-/compress-8.
|
|
409
|
-
"integrity": "sha512-
|
|
407
|
+
"version": "8.3.0",
|
|
408
|
+
"resolved": "https://registry.npmjs.org/@fastify/compress/-/compress-8.3.0.tgz",
|
|
409
|
+
"integrity": "sha512-zYp6SCa7nJMxAse8+TXWNF0l0xV9K9GeMFwdr0aESAKfCEGo7N96b5vjFDFEz/pg8eyo1Am1B249UX79mS3x9A==",
|
|
410
410
|
"funding": [
|
|
411
411
|
{
|
|
412
412
|
"type": "github",
|
|
@@ -712,9 +712,9 @@
|
|
|
712
712
|
}
|
|
713
713
|
},
|
|
714
714
|
"node_modules/@fastify/swagger": {
|
|
715
|
-
"version": "9.
|
|
716
|
-
"resolved": "https://registry.npmjs.org/@fastify/swagger/-/swagger-9.
|
|
717
|
-
"integrity": "sha512-
|
|
715
|
+
"version": "9.6.0",
|
|
716
|
+
"resolved": "https://registry.npmjs.org/@fastify/swagger/-/swagger-9.6.0.tgz",
|
|
717
|
+
"integrity": "sha512-qYsQtaWgcVTh7V9OVnbtzpo7hHXS01utWeahs43XETgTTF+iYq7u8NKNZbuoLxj+IsluZ2vjWsQLTFOnWiuCbg==",
|
|
718
718
|
"funding": [
|
|
719
719
|
{
|
|
720
720
|
"type": "github",
|
|
@@ -3443,9 +3443,9 @@
|
|
|
3443
3443
|
}
|
|
3444
3444
|
},
|
|
3445
3445
|
"node_modules/fastify": {
|
|
3446
|
-
"version": "5.6.
|
|
3447
|
-
"resolved": "https://registry.npmjs.org/fastify/-/fastify-5.6.
|
|
3448
|
-
"integrity": "sha512-
|
|
3446
|
+
"version": "5.6.2",
|
|
3447
|
+
"resolved": "https://registry.npmjs.org/fastify/-/fastify-5.6.2.tgz",
|
|
3448
|
+
"integrity": "sha512-dPugdGnsvYkBlENLhCgX8yhyGCsCPrpA8lFWbTNU428l+YOnLgYHR69hzV8HWPC79n536EqzqQtvhtdaCE0dKg==",
|
|
3449
3449
|
"funding": [
|
|
3450
3450
|
{
|
|
3451
3451
|
"type": "github",
|
|
@@ -3468,7 +3468,7 @@
|
|
|
3468
3468
|
"fast-json-stringify": "^6.0.0",
|
|
3469
3469
|
"find-my-way": "^9.0.0",
|
|
3470
3470
|
"light-my-request": "^6.0.0",
|
|
3471
|
-
"pino": "^
|
|
3471
|
+
"pino": "^10.1.0",
|
|
3472
3472
|
"process-warning": "^5.0.0",
|
|
3473
3473
|
"rfdc": "^1.3.1",
|
|
3474
3474
|
"secure-json-parse": "^4.0.0",
|
|
@@ -3515,28 +3515,6 @@
|
|
|
3515
3515
|
"integrity": "sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==",
|
|
3516
3516
|
"license": "BSD-3-Clause"
|
|
3517
3517
|
},
|
|
3518
|
-
"node_modules/fastify/node_modules/pino": {
|
|
3519
|
-
"version": "9.14.0",
|
|
3520
|
-
"resolved": "https://registry.npmjs.org/pino/-/pino-9.14.0.tgz",
|
|
3521
|
-
"integrity": "sha512-8OEwKp5juEvb/MjpIc4hjqfgCNysrS94RIOMXYvpYCdm/jglrKEiAYmiumbmGhCvs+IcInsphYDFwqrjr7398w==",
|
|
3522
|
-
"license": "MIT",
|
|
3523
|
-
"dependencies": {
|
|
3524
|
-
"@pinojs/redact": "^0.4.0",
|
|
3525
|
-
"atomic-sleep": "^1.0.0",
|
|
3526
|
-
"on-exit-leak-free": "^2.1.0",
|
|
3527
|
-
"pino-abstract-transport": "^2.0.0",
|
|
3528
|
-
"pino-std-serializers": "^7.0.0",
|
|
3529
|
-
"process-warning": "^5.0.0",
|
|
3530
|
-
"quick-format-unescaped": "^4.0.3",
|
|
3531
|
-
"real-require": "^0.2.0",
|
|
3532
|
-
"safe-stable-stringify": "^2.3.1",
|
|
3533
|
-
"sonic-boom": "^4.0.1",
|
|
3534
|
-
"thread-stream": "^3.0.0"
|
|
3535
|
-
},
|
|
3536
|
-
"bin": {
|
|
3537
|
-
"pino": "bin.js"
|
|
3538
|
-
}
|
|
3539
|
-
},
|
|
3540
3518
|
"node_modules/fastparallel": {
|
|
3541
3519
|
"version": "2.4.1",
|
|
3542
3520
|
"resolved": "https://registry.npmjs.org/fastparallel/-/fastparallel-2.4.1.tgz",
|
|
@@ -4608,9 +4586,9 @@
|
|
|
4608
4586
|
}
|
|
4609
4587
|
},
|
|
4610
4588
|
"node_modules/ip-address": {
|
|
4611
|
-
"version": "10.0
|
|
4612
|
-
"resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.0.
|
|
4613
|
-
"integrity": "sha512-
|
|
4589
|
+
"version": "10.1.0",
|
|
4590
|
+
"resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.1.0.tgz",
|
|
4591
|
+
"integrity": "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==",
|
|
4614
4592
|
"dev": true,
|
|
4615
4593
|
"license": "MIT",
|
|
4616
4594
|
"engines": {
|
|
@@ -7267,9 +7245,9 @@
|
|
|
7267
7245
|
"license": "MIT"
|
|
7268
7246
|
},
|
|
7269
7247
|
"node_modules/path-scurry": {
|
|
7270
|
-
"version": "2.0.
|
|
7271
|
-
"resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.
|
|
7272
|
-
"integrity": "sha512-
|
|
7248
|
+
"version": "2.0.1",
|
|
7249
|
+
"resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.1.tgz",
|
|
7250
|
+
"integrity": "sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==",
|
|
7273
7251
|
"license": "BlueOak-1.0.0",
|
|
7274
7252
|
"dependencies": {
|
|
7275
7253
|
"lru-cache": "^11.0.0",
|
package/dist/package.json
CHANGED
|
@@ -240,9 +240,7 @@ export async function login(req: FastifyRequest, reply: FastifyReply) {
|
|
|
240
240
|
|
|
241
241
|
const isPasswordToBeChanged = req.server['userManager'].isPasswordToBeChanged(user)
|
|
242
242
|
if (isPasswordToBeChanged) {
|
|
243
|
-
return reply
|
|
244
|
-
.status(403)
|
|
245
|
-
.send({ statusCode: 403, code: 'PASSWORD_TO_BE_CHANGED', message: 'The password is expired' })
|
|
243
|
+
return reply.status(403).send({ statusCode: 403, code: 'PASSWORD_TO_BE_CHANGED', message: 'Password is expired' })
|
|
246
244
|
}
|
|
247
245
|
|
|
248
246
|
if (user.blocked) {
|
|
@@ -1,19 +1,9 @@
|
|
|
1
1
|
import { FastifyReply, FastifyRequest } from 'fastify'
|
|
2
2
|
import { AuthenticatedUser } from '../../../../types/global'
|
|
3
3
|
|
|
4
|
-
export function
|
|
5
|
-
const user: AuthenticatedUser | undefined = req.user
|
|
6
|
-
reply.send(user ? { ...user, roles: req.roles() } : {})
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
export function isAdmin(req: FastifyRequest, reply: FastifyReply) {
|
|
10
|
-
const user: AuthenticatedUser | undefined = req.user
|
|
11
|
-
reply.send({ isAdmin: user?.getId() && req.hasRole(roles.admin) })
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export function getRoles(req: FastifyRequest, reply: FastifyReply) {
|
|
4
|
+
export async function getRoles(req: FastifyRequest, reply: FastifyReply) {
|
|
15
5
|
const allRoles = Object.keys(roles).map((key) => roles[key])
|
|
16
|
-
reply.send(allRoles)
|
|
6
|
+
return reply.send(allRoles)
|
|
17
7
|
}
|
|
18
8
|
|
|
19
9
|
export async function count(req: FastifyRequest, reply: FastifyReply) {
|
|
@@ -32,13 +22,24 @@ export async function findOne(req: FastifyRequest, reply: FastifyReply) {
|
|
|
32
22
|
}
|
|
33
23
|
|
|
34
24
|
export async function create(req: FastifyRequest, reply: FastifyReply) {
|
|
25
|
+
if (!req.hasRole(roles.admin)) {
|
|
26
|
+
return reply.status(403).send(Error('Only admins can create users'))
|
|
27
|
+
}
|
|
28
|
+
|
|
35
29
|
const { id, ...data } = req.data()
|
|
30
|
+
|
|
31
|
+
if (data.roles && data.roles.includes(roles.admin)) {
|
|
32
|
+
if (!config.enable || config.options?.allow_multiple_admin !== true) {
|
|
33
|
+
return reply.status(403).send(Error('Cannot assign admin role to a user'))
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
36
37
|
const user = await req.server['userManager'].createUser(data)
|
|
37
38
|
return user ? entity.User.save(user) : reply.status(400).send(Error('User not creatable'))
|
|
38
39
|
}
|
|
39
40
|
|
|
40
41
|
export async function update(req: FastifyRequest, reply: FastifyReply) {
|
|
41
|
-
const { id, ...userData } = req.
|
|
42
|
+
const { id, ...userData } = req.data()
|
|
42
43
|
if (!id) {
|
|
43
44
|
return reply.status(400).send('Missing required id parameter')
|
|
44
45
|
}
|
|
@@ -53,3 +54,24 @@ export async function remove(req: FastifyRequest, reply: FastifyReply) {
|
|
|
53
54
|
}
|
|
54
55
|
return await req.server['userManager'].deleteUser(id)
|
|
55
56
|
}
|
|
57
|
+
|
|
58
|
+
export async function getCurrentUser(req: FastifyRequest, reply: FastifyReply) {
|
|
59
|
+
const user: AuthenticatedUser | undefined = req.user
|
|
60
|
+
return reply.send(user ? { ...user, roles: req.roles() } : {})
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export async function updateCurrentUser(req: FastifyRequest, reply: FastifyReply) {
|
|
64
|
+
const user: AuthenticatedUser | undefined = req.user
|
|
65
|
+
const id = user?.getId()
|
|
66
|
+
if (!id) {
|
|
67
|
+
return reply.status(403).send('Cannot update current user')
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
const { id: _id, ...userData } = req.data()
|
|
71
|
+
return await req.server['userManager'].updateUserById(id, userData)
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export async function isAdmin(req: FastifyRequest, reply: FastifyReply) {
|
|
75
|
+
const user: AuthenticatedUser | undefined = req.user
|
|
76
|
+
return reply.send({ isAdmin: user?.getId() && req.hasRole(roles.admin) })
|
|
77
|
+
}
|
package/lib/api/users/routes.ts
CHANGED
|
@@ -64,9 +64,9 @@ module.exports = {
|
|
|
64
64
|
{
|
|
65
65
|
method: 'GET',
|
|
66
66
|
path: '/:id',
|
|
67
|
-
roles: [],
|
|
67
|
+
roles: [roles.admin],
|
|
68
68
|
handler: 'user.findOne',
|
|
69
|
-
middlewares: [],
|
|
69
|
+
middlewares: ['global.isAuthenticated'],
|
|
70
70
|
config: {
|
|
71
71
|
title: 'Find user',
|
|
72
72
|
description: 'Get user by id',
|
|
@@ -82,9 +82,9 @@ module.exports = {
|
|
|
82
82
|
{
|
|
83
83
|
method: 'PUT',
|
|
84
84
|
path: '/:id',
|
|
85
|
-
roles: [],
|
|
85
|
+
roles: [roles.admin],
|
|
86
86
|
handler: 'user.update',
|
|
87
|
-
middlewares: [],
|
|
87
|
+
middlewares: ['global.isAuthenticated'],
|
|
88
88
|
config: {
|
|
89
89
|
title: 'Update user',
|
|
90
90
|
description: 'Updates a user by id',
|
|
@@ -101,9 +101,9 @@ module.exports = {
|
|
|
101
101
|
{
|
|
102
102
|
method: 'POST',
|
|
103
103
|
path: '/',
|
|
104
|
-
roles: [],
|
|
104
|
+
roles: [roles.admin],
|
|
105
105
|
handler: 'user.create',
|
|
106
|
-
middlewares: [],
|
|
106
|
+
middlewares: ['global.isAuthenticated'],
|
|
107
107
|
config: {
|
|
108
108
|
title: 'Create a user',
|
|
109
109
|
description: 'Creates a new user',
|
|
@@ -119,9 +119,9 @@ module.exports = {
|
|
|
119
119
|
{
|
|
120
120
|
method: 'DELETE',
|
|
121
121
|
path: '/:id',
|
|
122
|
-
roles: [],
|
|
122
|
+
roles: [roles.admin],
|
|
123
123
|
handler: 'user.remove',
|
|
124
|
-
middlewares: [],
|
|
124
|
+
middlewares: ['global.isAuthenticated'],
|
|
125
125
|
config: {
|
|
126
126
|
title: 'Delete user',
|
|
127
127
|
description: 'Deletes user by id',
|
|
@@ -138,7 +138,7 @@ module.exports = {
|
|
|
138
138
|
method: 'GET',
|
|
139
139
|
path: '/me',
|
|
140
140
|
roles: [],
|
|
141
|
-
handler: 'user.
|
|
141
|
+
handler: 'user.getCurrentUser',
|
|
142
142
|
middlewares: ['global.isAuthenticated'],
|
|
143
143
|
config: {
|
|
144
144
|
title: 'Get current user',
|
|
@@ -148,6 +148,24 @@ module.exports = {
|
|
|
148
148
|
}
|
|
149
149
|
}
|
|
150
150
|
},
|
|
151
|
+
{
|
|
152
|
+
method: 'PUT',
|
|
153
|
+
path: '/me',
|
|
154
|
+
roles: [],
|
|
155
|
+
handler: 'user.updateCurrentUser',
|
|
156
|
+
middlewares: ['global.isAuthenticated'],
|
|
157
|
+
config: {
|
|
158
|
+
title: 'Update current user',
|
|
159
|
+
description: 'Update current user',
|
|
160
|
+
body: { $ref: 'currentUserBodySchema#' },
|
|
161
|
+
response: {
|
|
162
|
+
200: {
|
|
163
|
+
description: 'Default response',
|
|
164
|
+
$ref: 'userSchema#'
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
},
|
|
151
169
|
{
|
|
152
170
|
method: 'GET',
|
|
153
171
|
path: '/is-admin',
|
package/lib/config/general.ts
CHANGED
package/lib/hooks/onRequest.ts
CHANGED
|
@@ -3,71 +3,108 @@ import { AuthenticatedUser, AuthenticatedToken, Role } from '../../types/global'
|
|
|
3
3
|
|
|
4
4
|
const { embedded_auth = true } = global.config?.options || {}
|
|
5
5
|
|
|
6
|
+
const normalizeRoles = (rolesArray: any[] | undefined): string[] => {
|
|
7
|
+
if (!rolesArray || rolesArray.length === 0) {
|
|
8
|
+
return [roles.public.code]
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
// Check the type of the first element to determine the array's structure
|
|
12
|
+
const firstElement = rolesArray[0]
|
|
13
|
+
if (typeof firstElement === 'string') {
|
|
14
|
+
return rolesArray as string[]
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
if (typeof firstElement === 'object' && firstElement !== null && 'code' in firstElement) {
|
|
18
|
+
return rolesArray.map((role: Role) => role.code)
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
// Fallback for unexpected formats
|
|
22
|
+
return [roles.public.code]
|
|
23
|
+
}
|
|
24
|
+
|
|
6
25
|
module.exports = async (req, reply) => {
|
|
7
26
|
log.i && (req.startedAt = new Date())
|
|
8
27
|
|
|
9
|
-
//
|
|
28
|
+
// Request enrichment
|
|
10
29
|
req.data = () => getData(req)
|
|
11
30
|
req.parameters = () => getParams(req)
|
|
12
31
|
|
|
13
32
|
if (embedded_auth) {
|
|
14
|
-
|
|
15
|
-
req.
|
|
33
|
+
// Initialize role helpers with a default 'public' role
|
|
34
|
+
req.roles = () => [roles.public.code]
|
|
35
|
+
req.hasRole = (r: Role) => req.roles().includes(r?.code)
|
|
16
36
|
|
|
17
|
-
// authorization check
|
|
18
37
|
const auth = req.headers?.authorization || ''
|
|
19
38
|
const cfg = req.routeOptions?.config || req.routeConfig || {}
|
|
20
39
|
const [prefix, bearerToken] = auth.split(' ')
|
|
21
40
|
|
|
22
41
|
if (prefix === 'Bearer' && bearerToken != null) {
|
|
23
|
-
let user: null | AuthenticatedUser = null
|
|
24
|
-
let token: null | AuthenticatedToken = null
|
|
25
|
-
|
|
26
42
|
try {
|
|
27
43
|
const tokenData = reply.server.jwt.verify(bearerToken)
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
if (!user && !token) {
|
|
33
|
-
return reply.status(404).send({ statusCode: 404, code: 'USER_NOT_FOUND', message: 'User not found' })
|
|
44
|
+
const subjectId = tokenData?.sub
|
|
45
|
+
|
|
46
|
+
if (!subjectId) {
|
|
47
|
+
throw new Error('Invalid token subject')
|
|
34
48
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
49
|
+
|
|
50
|
+
let user: null | AuthenticatedUser = null
|
|
51
|
+
let token: null | AuthenticatedToken = null
|
|
52
|
+
|
|
53
|
+
// Attempt to retrieve user only if userManager is implemented
|
|
54
|
+
if (req.server['userManager']?.isImplemented()) {
|
|
55
|
+
user = await req.server['userManager'].retrieveUserByExternalId(subjectId)
|
|
56
|
+
if (user) {
|
|
57
|
+
const isValid = await req.server['userManager'].isValidUser(user)
|
|
58
|
+
if (!isValid) {
|
|
59
|
+
return reply
|
|
60
|
+
.status(403)
|
|
61
|
+
.send({ statusCode: 403, code: 'USER_NOT_VALID', message: 'User is not valid or blocked' })
|
|
62
|
+
}
|
|
63
|
+
req.user = user
|
|
39
64
|
}
|
|
40
|
-
// ok, we have the full user here
|
|
41
|
-
req.user = user
|
|
42
65
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
66
|
+
|
|
67
|
+
// Attempt to retrieve token if user was not found and tokenManager is implemented
|
|
68
|
+
if (!user && req.server['tokenManager']?.isImplemented()) {
|
|
69
|
+
token = await req.server['tokenManager'].retrieveTokenByExternalId(subjectId)
|
|
70
|
+
if (token) {
|
|
71
|
+
const isValid = await req.server['tokenManager'].isValidToken(token)
|
|
72
|
+
if (!isValid) {
|
|
73
|
+
return reply
|
|
74
|
+
.status(403)
|
|
75
|
+
.send({ statusCode: 403, code: 'TOKEN_NOT_VALID', message: 'Token is not valid or blocked' })
|
|
76
|
+
}
|
|
77
|
+
req.token = token
|
|
47
78
|
}
|
|
48
|
-
// ok, we have the full user here
|
|
49
|
-
req.token = token
|
|
50
79
|
}
|
|
80
|
+
|
|
81
|
+
if (!req.user && !req.token) {
|
|
82
|
+
return reply.status(404).send({ statusCode: 404, code: 'SUBJECT_NOT_FOUND', message: 'Subject not found' })
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
// Re-normalize roles now that req.user or req.token is populated
|
|
86
|
+
const freshNormalizedRoles = normalizeRoles(req.user?.roles || req.token?.roles)
|
|
87
|
+
req.roles = () => freshNormalizedRoles
|
|
51
88
|
} catch (error) {
|
|
52
89
|
const isRoutePublic = (cfg.requiredRoles || []).some((role: Role) => role.code === roles.public.code)
|
|
53
90
|
if (!isRoutePublic) {
|
|
54
|
-
|
|
91
|
+
return reply
|
|
92
|
+
.status(401)
|
|
93
|
+
.send({ statusCode: 401, code: 'UNAUTHORIZED', message: error.message || 'Invalid or expired token' })
|
|
55
94
|
}
|
|
56
95
|
}
|
|
57
96
|
}
|
|
58
97
|
|
|
98
|
+
// Role-Based Access Control (RBAC) check
|
|
59
99
|
if (cfg.requiredRoles?.length > 0) {
|
|
60
100
|
const { method = '', url = '', requiredRoles } = cfg
|
|
61
|
-
const
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
return reply
|
|
69
|
-
.status(403)
|
|
70
|
-
.send({ statusCode: 403, code: 'ROLE_NOT_ALLOWED', message: 'Not allowed to call this route' })
|
|
101
|
+
const authorizedRoles: string[] = req.roles()
|
|
102
|
+
|
|
103
|
+
const hasPermission = requiredRoles.some((r) => authorizedRoles.includes(r.code))
|
|
104
|
+
|
|
105
|
+
if (!hasPermission) {
|
|
106
|
+
log.w && log.warn(`Forbidden: ${req.user?.email || 'anonymous'} cannot call ${method.toUpperCase()} ${url}`)
|
|
107
|
+
return reply.status(403).send({ statusCode: 403, code: 'FORBIDDEN', message: 'Authorization denied' })
|
|
71
108
|
}
|
|
72
109
|
}
|
|
73
110
|
}
|
package/lib/loader/general.ts
CHANGED
package/lib/schemas/user.ts
CHANGED
package/package.json
CHANGED