summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgumi <git@gumi.ca>2020-03-03 16:41:29 -0500
committergumi <git@gumi.ca>2020-03-03 16:45:50 -0500
commit9931ddf95759b694e0ed06c6bf9ae304ad7c4f6d (patch)
treee0b235ad77f367778cf8a5f876e7788c85389248
parent7f0bad289d88057737ce0de94f3c6e413c842687 (diff)
downloadapi-9931ddf95759b694e0ed06c6bf9ae304ad7c4f6d.tar.gz
api-9931ddf95759b694e0ed06c6bf9ae304ad7c4f6d.tar.bz2
api-9931ddf95759b694e0ed06c6bf9ae304ad7c4f6d.tar.xz
api-9931ddf95759b694e0ed06c6bf9ae304ad7c4f6d.zip
auto-fix accounts with no primary identity
-rw-r--r--src/routers/vault/middlewares/session.js7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/routers/vault/middlewares/session.js b/src/routers/vault/middlewares/session.js
index 336cfcd..8b64165 100644
--- a/src/routers/vault/middlewares/session.js
+++ b/src/routers/vault/middlewares/session.js
@@ -254,7 +254,12 @@ const new_session = async (req, res, next) => {
return;
} else {
// auth flow
- if (identity.id !== account.primaryIdentity && !account.allowNonPrimary) {
+ if (account.primaryIdentity === null || account.primaryIdentity === undefined) {
+ // the vault account has no primary identity (bug): let's fix this
+ console.warn(`Vault.session: fixing account with no primary identity {${session.vault}} [${req.ip}]`);
+ account.primaryIdentity = identity.id;
+ await account.save();
+ } else if (identity.id !== account.primaryIdentity && !account.allowNonPrimary) {
res.status(423).json({
status: "error",
error: "non-primary login is disabled",