@webda/core 2.4.1 → 3.0.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/lib/application.d.ts +171 -34
- package/lib/application.js +243 -47
- package/lib/application.js.map +1 -1
- package/lib/application.spec.js +44 -8
- package/lib/application.spec.js.map +1 -1
- package/lib/core.d.ts +113 -54
- package/lib/core.js +222 -135
- package/lib/core.js.map +1 -1
- package/lib/core.spec.js +87 -43
- package/lib/core.spec.js.map +1 -1
- package/lib/errors.d.ts +65 -0
- package/lib/errors.js +113 -0
- package/lib/errors.js.map +1 -0
- package/lib/errors.spec.d.ts +1 -0
- package/lib/errors.spec.js +33 -0
- package/lib/errors.spec.js.map +1 -0
- package/lib/index.d.ts +3 -0
- package/lib/index.js +3 -0
- package/lib/index.js.map +1 -1
- package/lib/models/aclmodel.d.ts +4 -4
- package/lib/models/aclmodel.js +10 -6
- package/lib/models/aclmodel.js.map +1 -1
- package/lib/models/aclmodel.spec.js +33 -24
- package/lib/models/aclmodel.spec.js.map +1 -1
- package/lib/models/coremodel.d.ts +284 -92
- package/lib/models/coremodel.js +403 -103
- package/lib/models/coremodel.js.map +1 -1
- package/lib/models/coremodel.spec.js +162 -24
- package/lib/models/coremodel.spec.js.map +1 -1
- package/lib/models/ident.d.ts +20 -6
- package/lib/models/ident.js.map +1 -1
- package/lib/models/ownermodel.d.ts +13 -23
- package/lib/models/ownermodel.js +24 -51
- package/lib/models/ownermodel.js.map +1 -1
- package/lib/models/ownermodel.spec.js +23 -11
- package/lib/models/ownermodel.spec.js.map +1 -1
- package/lib/models/relations.d.ts +167 -0
- package/lib/models/relations.js +113 -0
- package/lib/models/relations.js.map +1 -0
- package/lib/models/rolemodel.d.ts +3 -3
- package/lib/models/rolemodel.js +6 -6
- package/lib/models/rolemodel.js.map +1 -1
- package/lib/models/rolemodel.spec.js +12 -12
- package/lib/models/rolemodel.spec.js.map +1 -1
- package/lib/models/user.d.ts +40 -24
- package/lib/models/user.js +74 -48
- package/lib/models/user.js.map +1 -1
- package/lib/models/user.spec.js +24 -4
- package/lib/models/user.spec.js.map +1 -1
- package/lib/queues/memoryqueue.spec.js +9 -5
- package/lib/queues/memoryqueue.spec.js.map +1 -1
- package/lib/queues/queueservice.js.map +1 -1
- package/lib/router.d.ts +17 -8
- package/lib/router.js +81 -9
- package/lib/router.js.map +1 -1
- package/lib/router.spec.js +89 -5
- package/lib/router.spec.js.map +1 -1
- package/lib/services/asyncevents.spec.js +4 -4
- package/lib/services/authentication.d.ts +21 -22
- package/lib/services/authentication.js +90 -109
- package/lib/services/authentication.js.map +1 -1
- package/lib/services/authentication.spec.js +51 -65
- package/lib/services/authentication.spec.js.map +1 -1
- package/lib/services/binary.d.ts +132 -31
- package/lib/services/binary.js +257 -72
- package/lib/services/binary.js.map +1 -1
- package/lib/services/binary.spec.d.ts +16 -6
- package/lib/services/binary.spec.js +44 -117
- package/lib/services/binary.spec.js.map +1 -1
- package/lib/services/cloudbinary.d.ts +9 -10
- package/lib/services/cloudbinary.js +14 -15
- package/lib/services/cloudbinary.js.map +1 -1
- package/lib/services/cloudbinary.spec.d.ts +2 -2
- package/lib/services/cloudbinary.spec.js +13 -12
- package/lib/services/cloudbinary.spec.js.map +1 -1
- package/lib/services/configuration.js +9 -9
- package/lib/services/configuration.js.map +1 -1
- package/lib/services/configuration.spec.js +5 -7
- package/lib/services/configuration.spec.js.map +1 -1
- package/lib/services/cron.spec.js +3 -4
- package/lib/services/cron.spec.js.map +1 -1
- package/lib/services/cryptoservice.d.ts +2 -2
- package/lib/services/cryptoservice.js +5 -2
- package/lib/services/cryptoservice.js.map +1 -1
- package/lib/services/domainservice.d.ts +113 -0
- package/lib/services/domainservice.js +357 -0
- package/lib/services/domainservice.js.map +1 -0
- package/lib/services/domainservice.spec.d.ts +1 -0
- package/lib/services/domainservice.spec.js +334 -0
- package/lib/services/domainservice.spec.js.map +1 -0
- package/lib/services/echo.d.ts +2 -2
- package/lib/services/echo.js.map +1 -1
- package/lib/services/echo.spec.js +9 -2
- package/lib/services/echo.spec.js.map +1 -1
- package/lib/services/filebinary.d.ts +13 -14
- package/lib/services/filebinary.js +79 -73
- package/lib/services/filebinary.js.map +1 -1
- package/lib/services/filebinary.spec.d.ts +5 -0
- package/lib/services/filebinary.spec.js +222 -11
- package/lib/services/filebinary.spec.js.map +1 -1
- package/lib/services/fileconfiguration.js +7 -7
- package/lib/services/fileconfiguration.js.map +1 -1
- package/lib/services/fileconfiguration.spec.js +23 -24
- package/lib/services/fileconfiguration.spec.js.map +1 -1
- package/lib/services/invitationservice.d.ts +11 -9
- package/lib/services/invitationservice.js +17 -23
- package/lib/services/invitationservice.js.map +1 -1
- package/lib/services/invitationservice.spec.js +43 -40
- package/lib/services/invitationservice.spec.js.map +1 -1
- package/lib/services/kubernetesconfiguration.js +12 -22
- package/lib/services/kubernetesconfiguration.js.map +1 -1
- package/lib/services/kubernetesconfiguration.spec.js +1 -6
- package/lib/services/kubernetesconfiguration.spec.js.map +1 -1
- package/lib/services/mailer.js +1 -1
- package/lib/services/mailer.js.map +1 -1
- package/lib/services/mailer.spec.js +4 -1
- package/lib/services/mailer.spec.js.map +1 -1
- package/lib/services/oauth.d.ts +17 -9
- package/lib/services/oauth.js +30 -4
- package/lib/services/oauth.js.map +1 -1
- package/lib/services/oauth.spec.js +32 -15
- package/lib/services/oauth.spec.js.map +1 -1
- package/lib/services/prometheus.spec.js.map +1 -1
- package/lib/services/proxy.d.ts +9 -8
- package/lib/services/proxy.js +65 -36
- package/lib/services/proxy.js.map +1 -1
- package/lib/services/proxy.spec.js +28 -2
- package/lib/services/proxy.spec.js.map +1 -1
- package/lib/services/resource.d.ts +3 -3
- package/lib/services/resource.js +4 -3
- package/lib/services/resource.js.map +1 -1
- package/lib/services/resource.spec.js +3 -3
- package/lib/services/resource.spec.js.map +1 -1
- package/lib/services/service.d.ts +10 -13
- package/lib/services/service.js +29 -13
- package/lib/services/service.js.map +1 -1
- package/lib/services/service.spec.js +49 -11
- package/lib/services/service.spec.js.map +1 -1
- package/lib/services/version.d.ts +2 -2
- package/lib/services/version.js.map +1 -1
- package/lib/stores/aggregator.js +1 -0
- package/lib/stores/aggregator.js.map +1 -1
- package/lib/stores/aliasstore.d.ts +2 -2
- package/lib/stores/aliasstore.js +15 -4
- package/lib/stores/aliasstore.js.map +1 -1
- package/lib/stores/aliasstore.spec.js +4 -2
- package/lib/stores/aliasstore.spec.js.map +1 -1
- package/lib/stores/file.d.ts +5 -2
- package/lib/stores/file.js +11 -8
- package/lib/stores/file.js.map +1 -1
- package/lib/stores/file.spec.js +21 -34
- package/lib/stores/file.spec.js.map +1 -1
- package/lib/stores/mapper.d.ts +4 -2
- package/lib/stores/mapper.js +18 -11
- package/lib/stores/mapper.js.map +1 -1
- package/lib/stores/mapper.spec.js +6 -3
- package/lib/stores/mapper.spec.js.map +1 -1
- package/lib/stores/memory.d.ts +5 -2
- package/lib/stores/memory.js +11 -9
- package/lib/stores/memory.js.map +1 -1
- package/lib/stores/memory.spec.d.ts +3 -0
- package/lib/stores/memory.spec.js +100 -11
- package/lib/stores/memory.spec.js.map +1 -1
- package/lib/stores/store.d.ts +177 -87
- package/lib/stores/store.js +312 -141
- package/lib/stores/store.js.map +1 -1
- package/lib/stores/store.spec.d.ts +2 -2
- package/lib/stores/store.spec.js +54 -38
- package/lib/stores/store.spec.js.map +1 -1
- package/lib/stores/webdaql/WebdaQLLexer.d.ts +14 -13
- package/lib/stores/webdaql/WebdaQLLexer.js +121 -112
- package/lib/stores/webdaql/WebdaQLLexer.js.map +1 -1
- package/lib/stores/webdaql/WebdaQLParserLexer.d.ts +14 -13
- package/lib/stores/webdaql/WebdaQLParserLexer.js +121 -112
- package/lib/stores/webdaql/WebdaQLParserLexer.js.map +1 -1
- package/lib/stores/webdaql/WebdaQLParserListener.d.ts +15 -3
- package/lib/stores/webdaql/WebdaQLParserParser.d.ts +23 -13
- package/lib/stores/webdaql/WebdaQLParserParser.js +149 -94
- package/lib/stores/webdaql/WebdaQLParserParser.js.map +1 -1
- package/lib/stores/webdaql/WebdaQLParserVisitor.d.ts +9 -2
- package/lib/stores/webdaql/query.d.ts +6 -2
- package/lib/stores/webdaql/query.js +14 -1
- package/lib/stores/webdaql/query.js.map +1 -1
- package/lib/stores/webdaql/query.spec.js +10 -1
- package/lib/stores/webdaql/query.spec.js.map +1 -1
- package/lib/test.d.ts +48 -19
- package/lib/test.js +171 -63
- package/lib/test.js.map +1 -1
- package/lib/unpackedapplication.d.ts +5 -0
- package/lib/unpackedapplication.js +58 -10
- package/lib/unpackedapplication.js.map +1 -1
- package/lib/utils/context.d.ts +76 -29
- package/lib/utils/context.js +91 -55
- package/lib/utils/context.js.map +1 -1
- package/lib/utils/context.spec.d.ts +9 -1
- package/lib/utils/context.spec.js +73 -8
- package/lib/utils/context.spec.js.map +1 -1
- package/lib/utils/cookie.d.ts +4 -5
- package/lib/utils/cookie.js +1 -2
- package/lib/utils/cookie.js.map +1 -1
- package/lib/utils/cookie.spec.js +5 -3
- package/lib/utils/cookie.spec.js.map +1 -1
- package/lib/utils/httpcontext.spec.js +9 -3
- package/lib/utils/httpcontext.spec.js.map +1 -1
- package/lib/utils/serializers.d.ts +46 -17
- package/lib/utils/serializers.js +116 -2
- package/lib/utils/serializers.js.map +1 -1
- package/lib/utils/serializers.spec.js +84 -20
- package/lib/utils/serializers.spec.js.map +1 -1
- package/lib/utils/session.d.ts +14 -8
- package/lib/utils/session.js +14 -3
- package/lib/utils/session.js.map +1 -1
- package/lib/utils/session.spec.js +6 -1
- package/lib/utils/session.spec.js.map +1 -1
- package/package.json +16 -10
- package/test/cachedapp/webda.config.json +6 -1
- package/test/config-cached.json +5 -0
- package/test/config-file-missing-file.json +5 -7
- package/test/config-file-no-reload.json +5 -7
- package/test/config-file-reload.json +5 -7
- package/test/config-kube-reload.json +5 -11
- package/test/config-reload.json +2 -4
- package/test/config.json +12 -2
- package/test/moddas/voidstore.js +1 -1
- package/test/models/ident.js +6 -4
- package/test/models/task.js +4 -4
- package/webda.module.json +1587 -1266
|
@@ -6,14 +6,15 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
7
7
|
import bcrypt from "bcryptjs";
|
|
8
8
|
import { Counter } from "../core.js";
|
|
9
|
+
import { WebdaError } from "../errors.js";
|
|
9
10
|
import { Inject, Route, Service, ServiceParameters } from "../services/service.js";
|
|
10
11
|
import { HttpContext } from "../utils/httpcontext.js";
|
|
11
12
|
export class AuthenticationParameters extends ServiceParameters {
|
|
12
13
|
constructor(params) {
|
|
13
14
|
var _a, _b;
|
|
14
15
|
super(params);
|
|
15
|
-
this.
|
|
16
|
-
this.
|
|
16
|
+
this.identModel ?? (this.identModel = "Webda/Ident");
|
|
17
|
+
this.userModel ?? (this.userModel = "Webda/User");
|
|
17
18
|
this.url ?? (this.url = "/auth");
|
|
18
19
|
this.password ?? (this.password = {
|
|
19
20
|
regexp: ".{8,}"
|
|
@@ -63,20 +64,14 @@ class Authentication extends Service {
|
|
|
63
64
|
* @returns
|
|
64
65
|
*/
|
|
65
66
|
getUserStore() {
|
|
66
|
-
return this.
|
|
67
|
+
return this._userModel.store();
|
|
67
68
|
}
|
|
68
69
|
/**
|
|
69
70
|
* Get the user store
|
|
70
71
|
* @returns
|
|
71
72
|
*/
|
|
72
73
|
getIdentStore() {
|
|
73
|
-
return this.
|
|
74
|
-
}
|
|
75
|
-
setIdents(identStore) {
|
|
76
|
-
this._identsStore = identStore;
|
|
77
|
-
}
|
|
78
|
-
setUsers(userStore) {
|
|
79
|
-
this._usersStore = userStore;
|
|
74
|
+
return this._identModel.store();
|
|
80
75
|
}
|
|
81
76
|
/**
|
|
82
77
|
* @ignore
|
|
@@ -84,6 +79,8 @@ class Authentication extends Service {
|
|
|
84
79
|
*/
|
|
85
80
|
computeParameters() {
|
|
86
81
|
super.computeParameters();
|
|
82
|
+
this._identModel = this.getWebda().getModel(this.parameters.identModel);
|
|
83
|
+
this._userModel = this.getWebda().getModel(this.parameters.userModel);
|
|
87
84
|
if (this.parameters.password.verifier) {
|
|
88
85
|
this._passwordVerifier = this.getService(this.parameters.password.verifier);
|
|
89
86
|
}
|
|
@@ -215,10 +212,9 @@ class Authentication extends Service {
|
|
|
215
212
|
*/
|
|
216
213
|
async _sendEmailValidation(ctx) {
|
|
217
214
|
let identKey = ctx.parameters.email + "_email";
|
|
218
|
-
let ident = await this.
|
|
215
|
+
let ident = await this._identModel.ref(identKey).get();
|
|
219
216
|
if (!ident) {
|
|
220
|
-
await this.
|
|
221
|
-
uuid: `${ctx.parameters.email}_email`,
|
|
217
|
+
await this._identModel.ref(`${ctx.parameters.email}_email`).create({
|
|
222
218
|
_lastValidationEmail: Date.now(),
|
|
223
219
|
_type: "email"
|
|
224
220
|
});
|
|
@@ -226,20 +222,17 @@ class Authentication extends Service {
|
|
|
226
222
|
else {
|
|
227
223
|
// If the ident is linked to someone else - might want to remove it
|
|
228
224
|
if (ident.getUser() !== ctx.getCurrentUserId()) {
|
|
229
|
-
throw
|
|
225
|
+
throw new WebdaError.Conflict("Ident is linked to someone else");
|
|
230
226
|
}
|
|
231
227
|
// If the email is already validated
|
|
232
228
|
if (ident._validation) {
|
|
233
|
-
throw
|
|
229
|
+
throw new WebdaError.PreconditionFailed("Email already validated");
|
|
234
230
|
}
|
|
235
231
|
//
|
|
236
232
|
if (ident._lastValidationEmail >= Date.now() - this.parameters.email.delay) {
|
|
237
|
-
throw
|
|
233
|
+
throw new WebdaError.TooManyRequests("Email sent recently");
|
|
238
234
|
}
|
|
239
|
-
await this.
|
|
240
|
-
_lastValidationEmail: Date.now(),
|
|
241
|
-
uuid: identKey
|
|
242
|
-
});
|
|
235
|
+
await this._identModel.ref(ident.getUuid()).setAttribute("_lastValidationEmail", Date.now());
|
|
243
236
|
}
|
|
244
237
|
await this.sendValidationEmail(ctx, ctx.parameters.email);
|
|
245
238
|
}
|
|
@@ -250,7 +243,7 @@ class Authentication extends Service {
|
|
|
250
243
|
async _getMe(ctx) {
|
|
251
244
|
let user = await ctx.getCurrentUser();
|
|
252
245
|
if (user === undefined) {
|
|
253
|
-
throw
|
|
246
|
+
throw new WebdaError.NotFound("No user found");
|
|
254
247
|
}
|
|
255
248
|
await this.emitSync("Authentication.GetMe", {
|
|
256
249
|
context: ctx,
|
|
@@ -280,21 +273,20 @@ class Authentication extends Service {
|
|
|
280
273
|
if (!identId.endsWith(postfix)) {
|
|
281
274
|
identId += postfix;
|
|
282
275
|
}
|
|
283
|
-
let ident = await this.
|
|
276
|
+
let ident = await this._identModel.ref(identId).get();
|
|
284
277
|
// Ident is known
|
|
285
278
|
if (ident) {
|
|
286
|
-
await this.login(ctx, ident.getUser(), ident, provider);
|
|
287
|
-
await
|
|
279
|
+
await this.login(ctx, ident.getUser().toString(), ident, provider);
|
|
280
|
+
await ident.patch({
|
|
288
281
|
_lastUsed: new Date(),
|
|
289
|
-
__tokens: tokens
|
|
290
|
-
uuid: ident.uuid
|
|
282
|
+
__tokens: tokens
|
|
291
283
|
});
|
|
292
284
|
// Redirect to?
|
|
293
285
|
return;
|
|
294
286
|
}
|
|
295
287
|
let user;
|
|
296
288
|
if (profile.email) {
|
|
297
|
-
ident = await this.
|
|
289
|
+
ident = await this._identModel.ref(`${profile.email}_email`).get();
|
|
298
290
|
}
|
|
299
291
|
// If already login
|
|
300
292
|
if (ctx.getCurrentUserId()) {
|
|
@@ -303,34 +295,35 @@ class Authentication extends Service {
|
|
|
303
295
|
else {
|
|
304
296
|
// If an email in profile try to find the ident
|
|
305
297
|
if (ident) {
|
|
306
|
-
user = await this.
|
|
298
|
+
user = await this._userModel.ref(ident.getUser().toString()).get();
|
|
307
299
|
}
|
|
308
300
|
if (!user) {
|
|
309
301
|
// If no user, register a new user automatically
|
|
310
302
|
user = await this.registerUser(ctx, profile, identId);
|
|
311
|
-
await
|
|
303
|
+
await user.save();
|
|
312
304
|
}
|
|
313
305
|
}
|
|
314
306
|
if (profile.email && !ident) {
|
|
315
307
|
// Save additional email
|
|
316
|
-
|
|
308
|
+
await new this._identModel()
|
|
309
|
+
.load({
|
|
317
310
|
uuid: `${profile.email}_email`,
|
|
318
|
-
provider: "email"
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
311
|
+
provider: "email",
|
|
312
|
+
_user: user.getUuid()
|
|
313
|
+
}, true)
|
|
314
|
+
.save();
|
|
322
315
|
}
|
|
323
316
|
// Work directly on ident argument
|
|
324
|
-
ident = this.
|
|
317
|
+
ident = new this._identModel().load({
|
|
325
318
|
uuid: identId,
|
|
326
319
|
profile,
|
|
327
320
|
__tokens: tokens,
|
|
328
321
|
provider
|
|
329
|
-
});
|
|
322
|
+
}, true);
|
|
330
323
|
ident.setUser(user.uuid);
|
|
331
324
|
ident._lastUsed = new Date();
|
|
332
325
|
ident.setType(provider);
|
|
333
|
-
await ident.save(
|
|
326
|
+
await ident.save();
|
|
334
327
|
ident.__new = true;
|
|
335
328
|
await this.login(ctx, user, ident, provider);
|
|
336
329
|
}
|
|
@@ -339,16 +332,18 @@ class Authentication extends Service {
|
|
|
339
332
|
* @param ident
|
|
340
333
|
*/
|
|
341
334
|
async createUserWithIdent(provider, identId, profile = {}) {
|
|
342
|
-
if (await this.
|
|
335
|
+
if (await this._identModel.ref(`${identId}_${provider}`).exists()) {
|
|
343
336
|
throw new Error("Ident is already known");
|
|
344
337
|
}
|
|
345
|
-
let ctx = await this._webda.
|
|
338
|
+
let ctx = await this._webda.newWebContext(new HttpContext("fake", "GET", "/"));
|
|
346
339
|
// Pretend we logged in with the ident
|
|
347
340
|
await this.onIdentLogin(ctx, provider, identId, profile);
|
|
348
341
|
}
|
|
349
|
-
async registerUser(ctx, data, identId, user = this.
|
|
350
|
-
user.
|
|
351
|
-
|
|
342
|
+
async registerUser(ctx, data, identId, user = new this._userModel()) {
|
|
343
|
+
user.load({
|
|
344
|
+
email: data.email,
|
|
345
|
+
locale: ctx.getLocale()
|
|
346
|
+
}, true);
|
|
352
347
|
this.metrics.registration.inc();
|
|
353
348
|
await this.emitSync("Authentication.Register", {
|
|
354
349
|
user: user,
|
|
@@ -362,7 +357,7 @@ class Authentication extends Service {
|
|
|
362
357
|
const expire = Date.now() + interval;
|
|
363
358
|
let user;
|
|
364
359
|
if (typeof uuid === "string") {
|
|
365
|
-
user = await this.
|
|
360
|
+
user = await this._userModel.ref(uuid).get();
|
|
366
361
|
}
|
|
367
362
|
else {
|
|
368
363
|
user = uuid;
|
|
@@ -383,58 +378,50 @@ class Authentication extends Service {
|
|
|
383
378
|
*/
|
|
384
379
|
async _passwordRecoveryEmail(ctx) {
|
|
385
380
|
let email = ctx.parameter("email");
|
|
386
|
-
let ident = await this.
|
|
381
|
+
let ident = await this._identModel.ref(email + "_email").get();
|
|
387
382
|
if (!ident) {
|
|
388
|
-
throw
|
|
383
|
+
throw new WebdaError.NotFound("Email not found");
|
|
389
384
|
}
|
|
390
|
-
let user = await this.
|
|
385
|
+
let user = await this._userModel.ref(ident.getUser().toString()).get();
|
|
391
386
|
// Dont allow to do too many request
|
|
392
387
|
if (!user.lastPasswordRecoveryBefore(Date.now() - this.parameters.email.delay)) {
|
|
393
|
-
throw
|
|
388
|
+
throw new WebdaError.TooManyRequests("Password recovery already requested recently");
|
|
394
389
|
}
|
|
395
|
-
await
|
|
396
|
-
_lastPasswordRecovery: Date.now()
|
|
397
|
-
|
|
398
|
-
}, true, null);
|
|
390
|
+
await user.patch({
|
|
391
|
+
_lastPasswordRecovery: Date.now()
|
|
392
|
+
}, null);
|
|
399
393
|
this.metrics.recovery.inc();
|
|
400
394
|
await this.sendRecoveryEmail(ctx, user, email);
|
|
401
395
|
}
|
|
402
396
|
async _verifyPassword(password, user) {
|
|
403
397
|
if (this._passwordVerifier) {
|
|
404
398
|
if (!(await this._passwordVerifier.validate(password, user))) {
|
|
405
|
-
throw
|
|
399
|
+
throw new WebdaError.BadRequest("Password does not match the policy");
|
|
406
400
|
}
|
|
407
401
|
return;
|
|
408
402
|
}
|
|
409
403
|
let regexp = new RegExp(this.parameters.password.regexp);
|
|
410
404
|
if (regexp.exec(password) === null) {
|
|
411
|
-
throw
|
|
405
|
+
throw new WebdaError.BadRequest("Password does not match the policy");
|
|
412
406
|
}
|
|
413
407
|
}
|
|
414
408
|
async _passwordRecovery(ctx) {
|
|
415
409
|
let body = await ctx.getRequestBody();
|
|
416
|
-
|
|
417
|
-
body.login === undefined ||
|
|
418
|
-
body.token === undefined ||
|
|
419
|
-
body.expire === undefined) {
|
|
420
|
-
throw 400;
|
|
421
|
-
}
|
|
422
|
-
let user = await this._usersStore.get(body.login.toLowerCase());
|
|
410
|
+
let user = await this._userModel.ref(body.login.toLowerCase()).get();
|
|
423
411
|
if (!user) {
|
|
424
|
-
throw
|
|
412
|
+
throw new WebdaError.Forbidden("User not found");
|
|
425
413
|
}
|
|
426
414
|
if (!(await this.cryptoService.hmacVerify(body.login.toLowerCase() + body.expire + user.getPassword(), body.token))) {
|
|
427
|
-
throw
|
|
415
|
+
throw new WebdaError.Forbidden("Invalid token");
|
|
428
416
|
}
|
|
429
417
|
if (body.expire < Date.now()) {
|
|
430
|
-
throw
|
|
418
|
+
throw new WebdaError.Gone("Expired token");
|
|
431
419
|
}
|
|
432
420
|
await this._verifyPassword(body.password, user);
|
|
433
421
|
let password = this.hashPassword(body.password);
|
|
434
|
-
await
|
|
435
|
-
__password: password
|
|
436
|
-
|
|
437
|
-
}, true, null);
|
|
422
|
+
await user.patch({
|
|
423
|
+
__password: password
|
|
424
|
+
}, null);
|
|
438
425
|
this.metrics.recovered.inc();
|
|
439
426
|
await this.emitSync("Authentication.PasswordUpdate", {
|
|
440
427
|
user,
|
|
@@ -448,9 +435,6 @@ class Authentication extends Service {
|
|
|
448
435
|
* @returns
|
|
449
436
|
*/
|
|
450
437
|
async _handleEmailCallback(ctx) {
|
|
451
|
-
if (!ctx.parameter("token")) {
|
|
452
|
-
throw 400;
|
|
453
|
-
}
|
|
454
438
|
if (!(await this.cryptoService.hmacVerify(`${ctx.parameter("email")}_${ctx.parameter("user")}`, ctx.parameter("token")))) {
|
|
455
439
|
ctx.writeHead(302, {
|
|
456
440
|
Location: this.parameters.failureRedirect + "?reason=badToken"
|
|
@@ -472,17 +456,15 @@ class Authentication extends Service {
|
|
|
472
456
|
return;
|
|
473
457
|
}
|
|
474
458
|
const uuid = ctx.parameter("email") + "_email";
|
|
475
|
-
let ident = await this.
|
|
459
|
+
let ident = await this._identModel.ref(uuid).get();
|
|
476
460
|
// Would mean the ident got delete in the mean time... hyper low likely hood
|
|
477
461
|
if (ident === undefined) {
|
|
478
|
-
ident = this.
|
|
479
|
-
uuid
|
|
480
|
-
});
|
|
462
|
+
ident = new this._identModel().setUuid(uuid);
|
|
481
463
|
}
|
|
482
464
|
ident._type = "email";
|
|
483
465
|
ident._validation = new Date();
|
|
484
466
|
ident.setUser(ctx.parameter("user"));
|
|
485
|
-
await ident.save(
|
|
467
|
+
await ident.save();
|
|
486
468
|
ctx.writeHead(302, {
|
|
487
469
|
Location: this.parameters.successRedirect + "?validation=email",
|
|
488
470
|
"X-Webda-Authentication": "success"
|
|
@@ -504,7 +486,12 @@ class Authentication extends Service {
|
|
|
504
486
|
to: email,
|
|
505
487
|
locale: locale,
|
|
506
488
|
template: "EMAIL_RECOVERY",
|
|
507
|
-
replacements: {
|
|
489
|
+
replacements: {
|
|
490
|
+
...this.parameters.email,
|
|
491
|
+
infos,
|
|
492
|
+
to: email,
|
|
493
|
+
context: ctx
|
|
494
|
+
}
|
|
508
495
|
};
|
|
509
496
|
return mailer.send(mailOptions);
|
|
510
497
|
}
|
|
@@ -560,7 +547,7 @@ class Authentication extends Service {
|
|
|
560
547
|
await this.emitSync("Authentication.Logout", {
|
|
561
548
|
context: ctx
|
|
562
549
|
});
|
|
563
|
-
ctx.newSession();
|
|
550
|
+
await ctx.newSession();
|
|
564
551
|
}
|
|
565
552
|
/**
|
|
566
553
|
* Login a user
|
|
@@ -578,7 +565,7 @@ class Authentication extends Service {
|
|
|
578
565
|
ident
|
|
579
566
|
};
|
|
580
567
|
if (typeof user == "object") {
|
|
581
|
-
event.userId = user.
|
|
568
|
+
event.userId = user.getUuid();
|
|
582
569
|
event.user = user;
|
|
583
570
|
}
|
|
584
571
|
else {
|
|
@@ -600,7 +587,7 @@ class Authentication extends Service {
|
|
|
600
587
|
*/
|
|
601
588
|
async handleLogin(ctx, ident) {
|
|
602
589
|
let updates = {};
|
|
603
|
-
let user = await this.
|
|
590
|
+
let user = await this._userModel.ref(ident.getUser().toString()).get();
|
|
604
591
|
// Check password
|
|
605
592
|
if (this.checkPassword(user.getPassword(), (await ctx.getRequestBody()).password)) {
|
|
606
593
|
if (ident._failedLogin > 0) {
|
|
@@ -608,9 +595,8 @@ class Authentication extends Service {
|
|
|
608
595
|
}
|
|
609
596
|
updates._lastUsed = new Date();
|
|
610
597
|
updates._failedLogin = 0;
|
|
611
|
-
|
|
612
|
-
await this.
|
|
613
|
-
await this.login(ctx, ident.getUser(), ident, "email");
|
|
598
|
+
await this._identModel.ref(ident.uuid).patch(updates);
|
|
599
|
+
await this.login(ctx, ident.getUser().toString(), ident, "email");
|
|
614
600
|
ctx.write(user);
|
|
615
601
|
}
|
|
616
602
|
else {
|
|
@@ -622,12 +608,13 @@ class Authentication extends Service {
|
|
|
622
608
|
ident._failedLogin ?? (ident._failedLogin = 0);
|
|
623
609
|
updates._failedLogin = ident._failedLogin + 1;
|
|
624
610
|
updates._lastFailedLogin = new Date();
|
|
625
|
-
updates.uuid = ident.uuid;
|
|
626
611
|
// Swalow exeception issue to double check !
|
|
627
|
-
await this.
|
|
612
|
+
await this._identModel.ref(ident.uuid).patch(updates);
|
|
628
613
|
// Allows to auto redirect user to a oauth if needed
|
|
614
|
+
// It can intercept the error and redirect to the oauth if
|
|
615
|
+
// email match
|
|
629
616
|
if (!ctx.isEnded()) {
|
|
630
|
-
throw
|
|
617
|
+
throw new WebdaError.Forbidden("Invalid password");
|
|
631
618
|
}
|
|
632
619
|
}
|
|
633
620
|
}
|
|
@@ -640,15 +627,12 @@ class Authentication extends Service {
|
|
|
640
627
|
async _handleEmail(ctx) {
|
|
641
628
|
// If called while logged in reject
|
|
642
629
|
if (ctx.getCurrentUserId() !== undefined) {
|
|
643
|
-
throw
|
|
630
|
+
throw new WebdaError.Gone("Already logged in");
|
|
644
631
|
}
|
|
645
632
|
let body = await ctx.getRequestBody();
|
|
646
|
-
if (body.login === undefined) {
|
|
647
|
-
throw 400;
|
|
648
|
-
}
|
|
649
633
|
const mailConfig = this.parameters.email;
|
|
650
634
|
const uuid = body.login.toLowerCase() + "_email";
|
|
651
|
-
let ident = await this.
|
|
635
|
+
let ident = await this._identModel.ref(uuid).get();
|
|
652
636
|
if (ident !== undefined && ident.getUser() !== undefined) {
|
|
653
637
|
// Register on an known user
|
|
654
638
|
if (!body.register) {
|
|
@@ -657,7 +641,7 @@ class Authentication extends Service {
|
|
|
657
641
|
}
|
|
658
642
|
// If register on a validate email
|
|
659
643
|
if (ident._validation !== undefined) {
|
|
660
|
-
throw
|
|
644
|
+
throw new WebdaError.Conflict("Email already registered");
|
|
661
645
|
}
|
|
662
646
|
}
|
|
663
647
|
// TODO Handle add of email on authenticated user
|
|
@@ -677,7 +661,7 @@ class Authentication extends Service {
|
|
|
677
661
|
}
|
|
678
662
|
}
|
|
679
663
|
if (!body.password) {
|
|
680
|
-
throw
|
|
664
|
+
throw new WebdaError.BadRequest("Password is required");
|
|
681
665
|
}
|
|
682
666
|
// Store with a _
|
|
683
667
|
let __password = this.hashPassword(body.password);
|
|
@@ -686,26 +670,29 @@ class Authentication extends Service {
|
|
|
686
670
|
delete body.password;
|
|
687
671
|
delete body.register;
|
|
688
672
|
delete body.token;
|
|
689
|
-
let user = await this.registerUser(ctx, {}, uuid,
|
|
673
|
+
let user = await this.registerUser(ctx, {}, uuid, new this._userModel().load({
|
|
674
|
+
...body,
|
|
675
|
+
__password
|
|
676
|
+
}, true));
|
|
690
677
|
await this.emitSync("Authentication.PasswordCreate", {
|
|
691
678
|
user,
|
|
692
679
|
password: __password,
|
|
693
680
|
context: ctx
|
|
694
681
|
});
|
|
695
|
-
|
|
696
|
-
const newIdent = this.
|
|
682
|
+
await user.save();
|
|
683
|
+
const newIdent = new this._identModel().load({
|
|
697
684
|
uuid: uuid,
|
|
698
685
|
_type: "email",
|
|
699
686
|
email: email
|
|
700
|
-
});
|
|
701
|
-
newIdent.setUser(user.
|
|
687
|
+
}, true);
|
|
688
|
+
newIdent.setUser(user.getUuid());
|
|
702
689
|
if (validation) {
|
|
703
690
|
newIdent._validation = validation;
|
|
704
691
|
}
|
|
705
692
|
else if (!mailConfig.skipEmailValidation) {
|
|
706
693
|
newIdent._lastValidationEmail = Date.now();
|
|
707
694
|
}
|
|
708
|
-
ident = await newIdent.save(
|
|
695
|
+
ident = await newIdent.save();
|
|
709
696
|
await this.login(ctx, user, ident, "email");
|
|
710
697
|
ctx.write(user);
|
|
711
698
|
if (!validation && !mailConfig.skipEmailValidation) {
|
|
@@ -713,23 +700,17 @@ class Authentication extends Service {
|
|
|
713
700
|
}
|
|
714
701
|
return;
|
|
715
702
|
}
|
|
716
|
-
throw
|
|
703
|
+
throw new WebdaError.NotFound("");
|
|
717
704
|
}
|
|
718
705
|
async generateEmailValidationToken(user, email) {
|
|
719
706
|
return this.cryptoService.hmac(email + "_" + user);
|
|
720
707
|
}
|
|
721
708
|
}
|
|
722
|
-
__decorate([
|
|
723
|
-
Inject("identStore", "idents")
|
|
724
|
-
], Authentication.prototype, "_identsStore", void 0);
|
|
725
|
-
__decorate([
|
|
726
|
-
Inject("userStore", "users")
|
|
727
|
-
], Authentication.prototype, "_usersStore", void 0);
|
|
728
709
|
__decorate([
|
|
729
710
|
Inject("CryptoService")
|
|
730
711
|
], Authentication.prototype, "cryptoService", void 0);
|
|
731
712
|
__decorate([
|
|
732
|
-
Route("./email/{email}/validate", ["GET"],
|
|
713
|
+
Route("./email/{email}/validate", ["GET"], {
|
|
733
714
|
get: {
|
|
734
715
|
description: "The email validation process will be start",
|
|
735
716
|
summary: "Restart email validation",
|
|
@@ -752,7 +733,7 @@ __decorate([
|
|
|
752
733
|
})
|
|
753
734
|
], Authentication.prototype, "_sendEmailValidation", null);
|
|
754
735
|
__decorate([
|
|
755
|
-
Route("./me", ["GET"],
|
|
736
|
+
Route("./me", ["GET"], {
|
|
756
737
|
get: {
|
|
757
738
|
description: "Retrieve the current user from the session",
|
|
758
739
|
summary: "Get current user",
|
|
@@ -761,7 +742,7 @@ __decorate([
|
|
|
761
742
|
})
|
|
762
743
|
], Authentication.prototype, "_getMe", null);
|
|
763
744
|
__decorate([
|
|
764
|
-
Route(".", ["GET", "DELETE"],
|
|
745
|
+
Route(".", ["GET", "DELETE"], {
|
|
765
746
|
get: {
|
|
766
747
|
description: "Retrieve the list of available authentication",
|
|
767
748
|
summary: "Get available auths",
|
|
@@ -783,7 +764,7 @@ __decorate([
|
|
|
783
764
|
})
|
|
784
765
|
], Authentication.prototype, "_listAuthentications", null);
|
|
785
766
|
__decorate([
|
|
786
|
-
Route("./email/callback{?email,token,user}", ["GET"],
|
|
767
|
+
Route("./email/callback{?email,token,user?}", ["GET"], {
|
|
787
768
|
hidden: true
|
|
788
769
|
})
|
|
789
770
|
], Authentication.prototype, "_handleEmailCallback", null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authentication.js","sourceRoot":"","sources":["../../src/services/authentication.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"authentication.js","sourceRoot":"","sources":["../../src/services/authentication.ts"],"names":[],"mappings":"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"}
|