diff --git a/server/api/controllers/access-tokens/accept-terms.js b/server/api/controllers/access-tokens/accept-terms.js index bb010651..50f5378b 100644 --- a/server/api/controllers/access-tokens/accept-terms.js +++ b/server/api/controllers/access-tokens/accept-terms.js @@ -175,6 +175,10 @@ module.exports = { throw Errors.INVALID_PENDING_TOKEN; } + if (!sails.hooks.terms.isSignatureValid(inputs.signature)) { + throw Errors.INVALID_SIGNATURE; + } + let user = await User.qm.getOneById(session.userId, { withDeactivated: false, }); @@ -183,23 +187,17 @@ module.exports = { throw Errors.INVALID_PENDING_TOKEN; // TODO: introduce separate error? } - if (!user.termsSignature) { - if (!sails.hooks.terms.isSignatureValid(inputs.signature)) { - throw Errors.INVALID_SIGNATURE; - } + const values = { + termsSignature: inputs.signature, + termsAcceptedAt: new Date().toISOString(), + }; - const values = { - termsSignature: inputs.signature, - termsAcceptedAt: new Date().toISOString(), - }; - - if (!user.language && inputs.initialLanguage) { - values.language = inputs.initialLanguage; - } - - ({ user } = await User.qm.updateOne(user.id, values)); + if (!user.language && inputs.initialLanguage) { + values.language = inputs.initialLanguage; } + ({ user } = await User.qm.updateOne(user.id, values)); + const internalConfig = await InternalConfig.qm.getOneMain(); if (!internalConfig.isInitialized) {