diff options
author | gumi <git@gumi.ca> | 2020-03-03 16:41:29 -0500 |
---|---|---|
committer | gumi <git@gumi.ca> | 2020-03-03 16:45:50 -0500 |
commit | 9931ddf95759b694e0ed06c6bf9ae304ad7c4f6d (patch) | |
tree | e0b235ad77f367778cf8a5f876e7788c85389248 | |
parent | 7f0bad289d88057737ce0de94f3c6e413c842687 (diff) | |
download | apiv1-9931ddf95759b694e0ed06c6bf9ae304ad7c4f6d.tar.gz apiv1-9931ddf95759b694e0ed06c6bf9ae304ad7c4f6d.tar.bz2 apiv1-9931ddf95759b694e0ed06c6bf9ae304ad7c4f6d.tar.xz apiv1-9931ddf95759b694e0ed06c6bf9ae304ad7c4f6d.zip |
auto-fix accounts with no primary identity
-rw-r--r-- | src/routers/vault/middlewares/session.js | 7 |
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", |