@volcanicminds/backend 0.2.32 → 0.2.34
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/lib/api/auth/controller/auth.js +32 -7
- package/dist/lib/api/auth/controller/auth.js.map +1 -1
- package/dist/lib/api/auth/routes.js +42 -2
- package/dist/lib/api/auth/routes.js.map +1 -1
- package/dist/lib/api/users/routes.js +5 -2
- package/dist/lib/api/users/routes.js.map +1 -1
- package/dist/lib/util/regexp.js +1 -1
- package/lib/api/auth/controller/auth.ts +30 -6
- package/lib/api/auth/routes.ts +42 -2
- package/lib/api/users/routes.ts +5 -2
- package/lib/util/regexp.ts +1 -1
- package/package.json +1 -1
- package/types/global.d.ts +1 -0
|
@@ -43,7 +43,7 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
43
43
|
return t;
|
|
44
44
|
};
|
|
45
45
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
46
|
-
exports.invalidateTokens = exports.login = exports.changePassword = exports.unregister = exports.register = void 0;
|
|
46
|
+
exports.unblock = exports.block = exports.invalidateTokens = exports.login = exports.changePassword = exports.unregister = exports.register = void 0;
|
|
47
47
|
const regExp = __importStar(require("../../../util/regexp"));
|
|
48
48
|
function register(req, reply) {
|
|
49
49
|
var _a, _b;
|
|
@@ -82,8 +82,8 @@ function unregister(req, reply) {
|
|
|
82
82
|
if (!isValid) {
|
|
83
83
|
return reply.status(403).send(Error('Wrong credentials'));
|
|
84
84
|
}
|
|
85
|
-
if (
|
|
86
|
-
return reply.status(403).send(Error('User
|
|
85
|
+
if (user.blocked) {
|
|
86
|
+
return reply.status(403).send(Error('User blocked'));
|
|
87
87
|
}
|
|
88
88
|
user = yield req.server['userManager'].disableUserById(user === null || user === void 0 ? void 0 : user.id);
|
|
89
89
|
isValid = yield req.server['userManager'].isValidUser(user);
|
|
@@ -108,8 +108,8 @@ function changePassword(req, reply) {
|
|
|
108
108
|
if (!isValid) {
|
|
109
109
|
return reply.status(403).send(Error('Wrong credentials'));
|
|
110
110
|
}
|
|
111
|
-
if (
|
|
112
|
-
return reply.status(403).send(Error('User
|
|
111
|
+
if (user.blocked) {
|
|
112
|
+
return reply.status(403).send(Error('User blocked'));
|
|
113
113
|
}
|
|
114
114
|
user = yield req.server['userManager'].changePassword(email, newPassword1, oldPassword);
|
|
115
115
|
isValid = yield req.server['userManager'].isValidUser(user);
|
|
@@ -132,8 +132,8 @@ function login(req, reply) {
|
|
|
132
132
|
if (!isValid) {
|
|
133
133
|
return reply.status(403).send(Error('Wrong credentials'));
|
|
134
134
|
}
|
|
135
|
-
if (
|
|
136
|
-
return reply.status(403).send(Error('User
|
|
135
|
+
if (user.blocked) {
|
|
136
|
+
return reply.status(403).send(Error('User blocked'));
|
|
137
137
|
}
|
|
138
138
|
const token = user !== null ? yield reply.jwtSign({ sub: user.externalId }) : null;
|
|
139
139
|
return Object.assign(Object.assign({}, user), { token: token || null, roles: (user.roles || [((_b = (_a = global.role) === null || _a === void 0 ? void 0 : _a.public) === null || _b === void 0 ? void 0 : _b.code) || 'public']).map((r) => (r === null || r === void 0 ? void 0 : r.code) || r) });
|
|
@@ -153,4 +153,29 @@ function invalidateTokens(req, reply) {
|
|
|
153
153
|
});
|
|
154
154
|
}
|
|
155
155
|
exports.invalidateTokens = invalidateTokens;
|
|
156
|
+
function block(req, reply) {
|
|
157
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
158
|
+
if (!req.hasRole(roles.admin) && !req.hasRole(roles.backoffice)) {
|
|
159
|
+
return reply.status(403).send({ statusCode: 403, code: 'ROLE_NOT_ALLOWED', message: 'Not allowed to block a user' });
|
|
160
|
+
}
|
|
161
|
+
const { id: userId } = req.parameters();
|
|
162
|
+
const { reason } = req.data();
|
|
163
|
+
const user = yield req.server['userManager'].blockUserById(userId, reason);
|
|
164
|
+
return { ok: !!(user === null || user === void 0 ? void 0 : user.id) };
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
exports.block = block;
|
|
168
|
+
function unblock(req, reply) {
|
|
169
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
170
|
+
if (!req.hasRole(roles.admin) && !req.hasRole(roles.backoffice)) {
|
|
171
|
+
return reply
|
|
172
|
+
.status(403)
|
|
173
|
+
.send({ statusCode: 403, code: 'ROLE_NOT_ALLOWED', message: 'Not allowed to unblock a user' });
|
|
174
|
+
}
|
|
175
|
+
const { id: userId } = req.parameters();
|
|
176
|
+
const user = yield req.server['userManager'].unblockUserById(userId);
|
|
177
|
+
return { ok: !!(user === null || user === void 0 ? void 0 : user.id) };
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
exports.unblock = unblock;
|
|
156
181
|
//# sourceMappingURL=auth.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../../../lib/api/auth/controller/auth.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,6DAA8C;AAE9C,SAAsB,QAAQ,CAAC,GAAmB,EAAE,KAAmB;;;QACrE,MAAM,KAA8C,GAAG,CAAC,IAAI,EAAE,EAAxD,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,OAAwB,EAAnB,IAAI,cAAzC,0BAA2C,CAAa,CAAA;QAE9D,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAA;SAC3D;QACD,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACjD,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAA;SACxD;QACD,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YAChD,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAA;SAC3D;QACD,IAAI,CAAC,SAAS,IAAI,SAAS,KAAK,QAAQ,EAAE;YACxC,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAA;SACpE;QAGD,MAAM,UAAU,GAAG,CAAA,MAAA,MAAA,MAAM,CAAC,KAAK,0CAAE,MAAM,0CAAE,IAAI,KAAI,QAAQ,CAAA;QACzD,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,WAAC,OAAA,MAAA,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,0CAAE,IAAI,CAAA,EAAA,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC5F,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;YACpC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;SAC5B;QAED,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,UAAU,iCAAM,IAAI,KAAE,QAAQ,EAAE,QAAQ,IAAG,CAAA;QACxF,IAAI,CAAC,IAAI,EAAE;YACT,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAA;SAC5D;QAED,OAAO,IAAI,CAAA;;CACZ;AA7BD,4BA6BC;AAED,SAAsB,UAAU,CAAC,GAAmB,EAAE,KAAmB;;QACvE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,IAAI,EAAE,CAAA;QAEtC,IAAI,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,sBAAsB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;QAClF,IAAI,OAAO,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QAE/D,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAA;SAC1D;QAED,IAAI,
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../../../lib/api/auth/controller/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -52,8 +52,8 @@ module.exports = {
|
|
|
52
52
|
handler: 'auth.unregister',
|
|
53
53
|
middlewares: ['global.preAuth', 'global.postAuth'],
|
|
54
54
|
config: {
|
|
55
|
-
title: 'Unregister existing user',
|
|
56
|
-
description: 'Unregister an existing user',
|
|
55
|
+
title: 'Unregister existing user (actually disables it)',
|
|
56
|
+
description: 'Unregister an existing user (actually disables it)',
|
|
57
57
|
body: {
|
|
58
58
|
type: 'object',
|
|
59
59
|
properties: {
|
|
@@ -152,6 +152,46 @@ module.exports = {
|
|
|
152
152
|
}
|
|
153
153
|
}
|
|
154
154
|
}
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
method: 'POST',
|
|
158
|
+
path: '/block/:id',
|
|
159
|
+
roles: [roles.admin, roles.backoffice],
|
|
160
|
+
handler: 'auth.block',
|
|
161
|
+
middlewares: ['global.isAuthenticated'],
|
|
162
|
+
config: {
|
|
163
|
+
title: 'Block a user by id',
|
|
164
|
+
description: 'Block a user by id',
|
|
165
|
+
response: {
|
|
166
|
+
200: {
|
|
167
|
+
description: 'Default response',
|
|
168
|
+
type: 'object',
|
|
169
|
+
properties: {
|
|
170
|
+
ok: { type: 'boolean' }
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
method: 'POST',
|
|
178
|
+
path: '/unblock/:id',
|
|
179
|
+
roles: [roles.admin, roles.backoffice],
|
|
180
|
+
handler: 'auth.unblock',
|
|
181
|
+
middlewares: ['global.isAuthenticated'],
|
|
182
|
+
config: {
|
|
183
|
+
title: 'Unblock a user by id',
|
|
184
|
+
description: 'Unblock a user by id',
|
|
185
|
+
response: {
|
|
186
|
+
200: {
|
|
187
|
+
description: 'Default response',
|
|
188
|
+
type: 'object',
|
|
189
|
+
properties: {
|
|
190
|
+
ok: { type: 'boolean' }
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
155
195
|
}
|
|
156
196
|
]
|
|
157
197
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../../lib/api/auth/routes.ts"],"names":[],"mappings":";AAAA,MAAM,CAAC,OAAO,GAAG;IACf,MAAM,EAAE;QACN,KAAK,EAAE,0BAA0B;QACjC,WAAW,EAAE,0BAA0B;QACvC,UAAU,EAAE,YAAY;QACxB,IAAI,EAAE,CAAC,MAAM,CAAC;QACd,UAAU,EAAE,KAAK;QACjB,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,IAAI;KACb;IACD,MAAM,EAAE;QACN;YACE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,eAAe;YACxB,WAAW,EAAE,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;YAClD,MAAM,EAAE;gBACN,KAAK,EAAE,mBAAmB;gBAC1B,WAAW,EAAE,qBAAqB;gBAClC,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBAC5B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACzB,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBAC7B,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBAC7B,aAAa,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;qBAC5D;iBACF;gBACD,QAAQ,EAAE;oBACR,GAAG,EAAE;wBACH,WAAW,EAAE,kBAAkB;wBAC/B,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACtB,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BAC9B,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BAC5B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACzB,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;4BAC5B,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;yBACpD;qBACF;iBACF;aACF;SACF;QACD;YACE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,aAAa;YACnB,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,iBAAiB;YAC1B,WAAW,EAAE,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;YAClD,MAAM,EAAE;gBACN,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../../lib/api/auth/routes.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,8 +26,11 @@ module.exports = {
|
|
|
26
26
|
externalId: { type: 'string' },
|
|
27
27
|
username: { type: 'string' },
|
|
28
28
|
email: { type: 'string' },
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
blocked: { type: 'boolean' },
|
|
30
|
+
blockedReason: { type: 'string' },
|
|
31
|
+
blockedAt: { type: 'string' },
|
|
32
|
+
confirmed: { type: 'boolean' },
|
|
33
|
+
confirmedAt: { type: 'string' },
|
|
31
34
|
roles: { type: 'array', items: { type: 'string' } },
|
|
32
35
|
createdAt: { type: 'string' },
|
|
33
36
|
version: { type: 'number' },
|
|
@@ -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,MAAM,CAAC;YACrB,OAAO,EAAE,WAAW;YACpB,WAAW,EAAE,CAAC,wBAAwB,CAAC;YACvC,MAAM,EAAE;gBACN,KAAK,EAAE,kBAAkB;gBACzB,WAAW,EAAE,kBAAkB;gBAC/B,QAAQ,EAAE;oBACR,GAAG,EAAE;wBACH,WAAW,EAAE,kBAAkB;wBAC/B,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACtB,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BAC9B,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BAC5B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACzB,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;4BAC5B,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BAC7B,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;4BACnD,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BAC7B,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BAC3B,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;yBAC9B;qBACF;iBACF;aACF;SACF;QACD;YACE,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,cAAc;YACvB,WAAW,EAAE,CAAC,wBAAwB,CAAC;YACvC,MAAM,EAAE;gBACN,KAAK,EAAE,sBAAsB;gBAC7B,WAAW,EAAE,uCAAuC;gBACpD,QAAQ,EAAE;oBACR,GAAG,EAAE;wBACH,WAAW,EAAE,kBAAkB;wBAC/B,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;yBAC7B;qBACF;iBACF;aACF;SACF;KACF;CACF,CAAA"}
|
|
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,MAAM,CAAC;YACrB,OAAO,EAAE,WAAW;YACpB,WAAW,EAAE,CAAC,wBAAwB,CAAC;YACvC,MAAM,EAAE;gBACN,KAAK,EAAE,kBAAkB;gBACzB,WAAW,EAAE,kBAAkB;gBAC/B,QAAQ,EAAE;oBACR,GAAG,EAAE;wBACH,WAAW,EAAE,kBAAkB;wBAC/B,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACtB,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BAC9B,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BAC5B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACzB,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;4BAC5B,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACjC,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BAC7B,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;4BAC9B,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BAC/B,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;4BACnD,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BAC7B,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BAC3B,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;yBAC9B;qBACF;iBACF;aACF;SACF;QACD;YACE,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,cAAc;YACvB,WAAW,EAAE,CAAC,wBAAwB,CAAC;YACvC,MAAM,EAAE;gBACN,KAAK,EAAE,sBAAsB;gBAC7B,WAAW,EAAE,uCAAuC;gBACpD,QAAQ,EAAE;oBACR,GAAG,EAAE;wBACH,WAAW,EAAE,kBAAkB;wBAC/B,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;yBAC7B;qBACF;iBACF;aACF;SACF;KACF;CACF,CAAA"}
|
package/dist/lib/util/regexp.js
CHANGED
|
@@ -4,7 +4,7 @@ exports.tollFreePhone = exports.landLinePhone = exports.mobilePhone = exports.ib
|
|
|
4
4
|
exports.username = /(?=^.{3,33}$)^[a-z][a-z0-9]*[._-]?[a-z0-9]+$/gi;
|
|
5
5
|
exports.emailAlt = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
|
|
6
6
|
exports.email = /^\w+([\.+-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
|
|
7
|
-
exports.password = /^(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[^\w\d\s:])([^\s]){8,
|
|
7
|
+
exports.password = /^(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[^\w\d\s:])([^\s]){8,64}$/;
|
|
8
8
|
exports.zipCode = /(^\d{5}$)|(^\d{5}-\d{4}$)/;
|
|
9
9
|
exports.taxCodePersona = /^[a-zA-Z]{6}[0-9]{2}[abcdehlmprstABCDEHLMPRST]{1}[0-9]{2}([a-zA-Z]{1}[0-9]{3})[a-zA-Z]{1}$/;
|
|
10
10
|
exports.taxCodeCompany = /^([A-Z]{2}|)[0-9]{11}$/;
|
|
@@ -42,8 +42,8 @@ export async function unregister(req: FastifyRequest, reply: FastifyReply) {
|
|
|
42
42
|
return reply.status(403).send(Error('Wrong credentials'))
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
if (
|
|
46
|
-
return reply.status(403).send(Error('User
|
|
45
|
+
if (user.blocked) {
|
|
46
|
+
return reply.status(403).send(Error('User blocked'))
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
user = await req.server['userManager'].disableUserById(user?.id)
|
|
@@ -74,8 +74,8 @@ export async function changePassword(req: FastifyRequest, reply: FastifyReply) {
|
|
|
74
74
|
return reply.status(403).send(Error('Wrong credentials'))
|
|
75
75
|
}
|
|
76
76
|
|
|
77
|
-
if (
|
|
78
|
-
return reply.status(403).send(Error('User
|
|
77
|
+
if (user.blocked) {
|
|
78
|
+
return reply.status(403).send(Error('User blocked'))
|
|
79
79
|
}
|
|
80
80
|
|
|
81
81
|
user = await req.server['userManager'].changePassword(email, newPassword1, oldPassword)
|
|
@@ -100,8 +100,8 @@ export async function login(req: FastifyRequest, reply: FastifyReply) {
|
|
|
100
100
|
return reply.status(403).send(Error('Wrong credentials'))
|
|
101
101
|
}
|
|
102
102
|
|
|
103
|
-
if (
|
|
104
|
-
return reply.status(403).send(Error('User
|
|
103
|
+
if (user.blocked) {
|
|
104
|
+
return reply.status(403).send(Error('User blocked'))
|
|
105
105
|
}
|
|
106
106
|
|
|
107
107
|
// log.trace('User: ' + JSON.stringify(user) + ' ' + roles)
|
|
@@ -124,3 +124,27 @@ export async function invalidateTokens(req: FastifyRequest, reply: FastifyReply)
|
|
|
124
124
|
isValid = await req.server['userManager'].isValidUser(user)
|
|
125
125
|
return { ok: isValid }
|
|
126
126
|
}
|
|
127
|
+
|
|
128
|
+
export async function block(req: FastifyRequest, reply: FastifyReply) {
|
|
129
|
+
if (!req.hasRole(roles.admin) && !req.hasRole(roles.backoffice)) {
|
|
130
|
+
return reply.status(403).send({ statusCode: 403, code: 'ROLE_NOT_ALLOWED', message: 'Not allowed to block a user' })
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
const { id: userId } = req.parameters()
|
|
134
|
+
const { reason } = req.data()
|
|
135
|
+
|
|
136
|
+
const user = await req.server['userManager'].blockUserById(userId, reason)
|
|
137
|
+
return { ok: !!user?.id }
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
export async function unblock(req: FastifyRequest, reply: FastifyReply) {
|
|
141
|
+
if (!req.hasRole(roles.admin) && !req.hasRole(roles.backoffice)) {
|
|
142
|
+
return reply
|
|
143
|
+
.status(403)
|
|
144
|
+
.send({ statusCode: 403, code: 'ROLE_NOT_ALLOWED', message: 'Not allowed to unblock a user' })
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
const { id: userId } = req.parameters()
|
|
148
|
+
const user = await req.server['userManager'].unblockUserById(userId)
|
|
149
|
+
return { ok: !!user?.id }
|
|
150
|
+
}
|
package/lib/api/auth/routes.ts
CHANGED
|
@@ -51,8 +51,8 @@ module.exports = {
|
|
|
51
51
|
handler: 'auth.unregister',
|
|
52
52
|
middlewares: ['global.preAuth', 'global.postAuth'],
|
|
53
53
|
config: {
|
|
54
|
-
title: 'Unregister existing user',
|
|
55
|
-
description: 'Unregister an existing user',
|
|
54
|
+
title: 'Unregister existing user (actually disables it)',
|
|
55
|
+
description: 'Unregister an existing user (actually disables it)',
|
|
56
56
|
body: {
|
|
57
57
|
type: 'object',
|
|
58
58
|
properties: {
|
|
@@ -151,6 +151,46 @@ module.exports = {
|
|
|
151
151
|
}
|
|
152
152
|
}
|
|
153
153
|
}
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
method: 'POST',
|
|
157
|
+
path: '/block/:id',
|
|
158
|
+
roles: [roles.admin, roles.backoffice],
|
|
159
|
+
handler: 'auth.block',
|
|
160
|
+
middlewares: ['global.isAuthenticated'],
|
|
161
|
+
config: {
|
|
162
|
+
title: 'Block a user by id',
|
|
163
|
+
description: 'Block a user by id',
|
|
164
|
+
response: {
|
|
165
|
+
200: {
|
|
166
|
+
description: 'Default response',
|
|
167
|
+
type: 'object',
|
|
168
|
+
properties: {
|
|
169
|
+
ok: { type: 'boolean' }
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
method: 'POST',
|
|
177
|
+
path: '/unblock/:id',
|
|
178
|
+
roles: [roles.admin, roles.backoffice],
|
|
179
|
+
handler: 'auth.unblock',
|
|
180
|
+
middlewares: ['global.isAuthenticated'],
|
|
181
|
+
config: {
|
|
182
|
+
title: 'Unblock a user by id',
|
|
183
|
+
description: 'Unblock a user by id',
|
|
184
|
+
response: {
|
|
185
|
+
200: {
|
|
186
|
+
description: 'Default response',
|
|
187
|
+
type: 'object',
|
|
188
|
+
properties: {
|
|
189
|
+
ok: { type: 'boolean' }
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
154
194
|
}
|
|
155
195
|
]
|
|
156
196
|
}
|
package/lib/api/users/routes.ts
CHANGED
|
@@ -25,8 +25,11 @@ module.exports = {
|
|
|
25
25
|
externalId: { type: 'string' },
|
|
26
26
|
username: { type: 'string' },
|
|
27
27
|
email: { type: 'string' },
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
blocked: { type: 'boolean' },
|
|
29
|
+
blockedReason: { type: 'string' },
|
|
30
|
+
blockedAt: { type: 'string' },
|
|
31
|
+
confirmed: { type: 'boolean' },
|
|
32
|
+
confirmedAt: { type: 'string' },
|
|
30
33
|
roles: { type: 'array', items: { type: 'string' } },
|
|
31
34
|
createdAt: { type: 'string' },
|
|
32
35
|
version: { type: 'number' },
|
package/lib/util/regexp.ts
CHANGED
|
@@ -19,7 +19,7 @@ export const email = /^\w+([\.+-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/
|
|
|
19
19
|
* password must contain 1 non-alpha number
|
|
20
20
|
* password is 8-64 characters with no space
|
|
21
21
|
*/
|
|
22
|
-
export const password = /^(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[^\w\d\s:])([^\s]){8,
|
|
22
|
+
export const password = /^(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[^\w\d\s:])([^\s]){8,64}$/
|
|
23
23
|
export const zipCode = /(^\d{5}$)|(^\d{5}-\d{4}$)/
|
|
24
24
|
export const taxCodePersona =
|
|
25
25
|
/^[a-zA-Z]{6}[0-9]{2}[abcdehlmprstABCDEHLMPRST]{1}[0-9]{2}([a-zA-Z]{1}[0-9]{3})[a-zA-Z]{1}$/
|
package/package.json
CHANGED