Fix for login token with SSO, #3293
Ylian Saint-Hilaire committed
Nov 25, 2021 at 10:09 UTC
725f9923e7d3328a8435443b1a9ede0cad13fbeb
2 files changed
+23
-8
package.json
+15
-2
@@ -36,6 +36,8 @@
36
"sample-config-advanced.json"
37
],
38
"dependencies": {
39
+ "@yetzt/nedb": "^1.8.0",
40
+ "archiver": "^4.0.2",
41
"body-parser": "^1.19.0",
42
"cbor": "~5.2.0",
43
"compression": "^1.7.4",
@@ -43,13 +45,24 @@
45
"express": "^4.17.0",
46
"express-handlebars": "^3.1.0",
47
"express-ws": "^4.0.0",
48
+ "image-size": "^1.0.0",
49
"ipcheck": "^0.1.0",
50
+ "ldapauth-fork": "^5.0.1",
51
+ "loadavg-windows": "^1.1.1",
52
"minimist": "^1.2.5",
53
"multiparty": "^4.2.1",
49
- "@yetzt/nedb": "^1.8.0",
54
"node-forge": "^0.10.0",
55
+ "node-rdpjs-2": "^0.3.5",
56
+ "node-windows": "^0.1.4",
57
+ "nodemailer": "^6.7.1",
58
+ "otplib": "^10.2.3",
59
+ "pg": "^8.7.1",
60
+ "pgtools": "^0.3.2",
61
+ "ssh2": "^1.5.0",
62
+ "web-push": "^3.4.5",
63
"ws": "^5.2.3",
52
- "yauzl": "^2.10.0"
64
+ "yauzl": "^2.10.0",
65
+ "yubikeyotp": "^0.2.0"
66
},
67
"engines": {
68
"node": ">=10.0.0"
webserver.js
+8
-6
@@ -6407,7 +6407,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
6407
} else {
6408
// We are authenticated with 2nd factor.
6409
// Check email verification
6410
- if (emailcheck && (user.email != null) && (user.emailVerified !== true)) {
6410
+ if (emailcheck && (user.email != null) && (!(user._id.split('/')[2].startsWith('~'))) && (user.emailVerified !== true)) {
6411
parent.debug('web', 'Invalid login, asking for email validation');
6412
try { ws.send(JSON.stringify({ action: 'close', cause: 'emailvalidation', msg: 'emailvalidationrequired', email2fa: email2fa, sms2fa: sms2fa, email2fasent: true })); ws.close(); } catch (e) { }
6413
} else {
@@ -6421,7 +6421,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
6421
}
6422
} else {
6423
// Check email verification
6424
- if (emailcheck && (user.email != null) && (user.emailVerified !== true)) {
6424
+ if (emailcheck && (user.email != null) && (!(user._id.split('/')[2].startsWith('~'))) && (user.emailVerified !== true)) {
6425
parent.debug('web', 'Invalid login, asking for email validation');
6426
var email2fa = (((typeof domain.passwordrequirements != 'object') || (domain.passwordrequirements.email2factor != false)) && (domain.mailserver != null) && (user.otpekey != null));
6427
var sms2fa = (((typeof domain.passwordrequirements != 'object') || (domain.passwordrequirements.sms2factor != false)) && (parent.smsserver != null) && (user.phone != null));
@@ -6554,7 +6554,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
6554
} else {
6555
// We are authenticated with 2nd factor.
6556
// Check email verification
6557
- if (emailcheck && (user.email != null) && (user.emailVerified !== true)) {
6557
+ if (emailcheck && (user.email != null) && (!(user._id.split('/')[2].startsWith('~'))) && (user.emailVerified !== true)) {
6558
parent.debug('web', 'Invalid login, asking for email validation');
6559
try { ws.send(JSON.stringify({ action: 'close', cause: 'emailvalidation', msg: 'emailvalidationrequired', email2fa: email2fa, sms2fa: sms2fa, email2fasent: true })); ws.close(); } catch (e) { }
6560
} else {
@@ -6565,7 +6565,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
6565
}
6566
} else {
6567
// Check email verification
6568
- if (emailcheck && (user.email != null) && (user.emailVerified !== true)) {
6568
+ if (emailcheck && (user.email != null) && (!(user._id.split('/')[2].startsWith('~'))) && (user.emailVerified !== true)) {
6569
parent.debug('web', 'Invalid login, asking for email validation');
6570
var email2fa = (((typeof domain.passwordrequirements != 'object') || (domain.passwordrequirements.email2factor != false)) && (domain.mailserver != null) && (user.otpekey != null));
6571
var sms2fa = (((typeof domain.passwordrequirements != 'object') || (domain.passwordrequirements.sms2factor != false)) && (parent.smsserver != null) && (user.phone != null));
@@ -6668,7 +6668,8 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
6668
} else {
6669
// We are authenticated with 2nd factor.
6670
// Check email verification
6671
- if (emailcheck && (user.email != null) && (user.emailVerified !== true)) {
6671
+ if (emailcheck && (user.email != null) && (!(user._id.split('/')[2].startsWith('~'))) && (user.emailVerified !== true)) {
6672
+ parent.debug('web', 'Invalid login, asking for email validation');
6673
try { ws.send(JSON.stringify({ action: 'close', cause: 'emailvalidation', msg: 'emailvalidationrequired', email2fa: email2fa, email2fasent: true, twoFactorCookieDays: twoFactorCookieDays })); ws.close(); } catch (e) { }
6674
} else {
6675
func(ws, req, domain, user);
@@ -6679,7 +6680,8 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
6680
} else {
6681
// We are authenticated
6682
// Check email verification
6682
- if (emailcheck && (user.email != null) && (user.emailVerified !== true)) {
6683
+ if (emailcheck && (user.email != null) && (!(user._id.split('/')[2].startsWith('~'))) && (user.emailVerified !== true)) {
6684
+ parent.debug('web', 'Invalid login, asking for email validation');
6685
try { ws.send(JSON.stringify({ action: 'close', cause: 'emailvalidation', msg: 'emailvalidationrequired', email2fa: email2fa, email2fasent: true })); ws.close(); } catch (e) { }
6686
} else {
6687
func(ws, req, domain, user);