#6274 workerTimeControl #1858

Merged
jorgep merged 31 commits from 6274-loginWorkerTimeControl into dev 2024-01-03 11:31:52 +00:00
1 changed files with 34 additions and 12 deletions
Showing only changes of commit 5442e3b4e0 - Show all commits

View File

@ -26,24 +26,46 @@ module.exports = Self => {
});
Self.sync = async function(userName, password, force, options) {
const models = Self.app.models;
const myOptions = {};
let tx;
if (typeof options == 'object')
Object.assign(myOptions, options);
const models = Self.app.models;
const user = await models.VnUser.findOne({
fields: ['id', 'password'],
where: {name: userName}
}, myOptions);
if (!myOptions.transaction) {
tx = await Self.beginTransaction({});
myOptions.transaction = tx;
};
if (user && password && !await user.hasPassword(password))
throw new ForbiddenError('Wrong password');
try {
const user = await models.VnUser.findOne({
fields: ['id', 'password'],
where: {name: userName}
}, myOptions);
const isSync = !await models.UserSync.exists(userName, myOptions);
if (user && password && !await user.hasPassword(password))
throw new ForbiddenError('Wrong password');
if (!force && isSync && user) return;
await models.AccountConfig.syncUser(userName, password);
await models.UserSync.destroyById(userName, myOptions);
const isSync = !await models.UserSync.exists(userName, myOptions);
if (!force && isSync && user) {
if (tx) await tx.rollback();
return;
}
await Self.rawSql(`
SELECT id
FROM account.user
WHERE id = ?
FOR UPDATE`, [user.id], myOptions);
await models.AccountConfig.syncUser(userName, password);
await models.UserSync.destroyById(userName, myOptions);
if (tx) await tx.commit();
} catch (err) {
if (tx) await tx.rollback();
throw err;
}
};
};