Bug #310 Error en client.credit
This commit is contained in:
parent
0fdb4a4785
commit
5203755fd1
|
@ -129,6 +129,11 @@ module.exports = Self => {
|
||||||
async function validateCreditChange(ctx, finalState) {
|
async function validateCreditChange(ctx, finalState) {
|
||||||
let models = Self.app.models;
|
let models = Self.app.models;
|
||||||
let userId = ctx.options.accessToken.userId;
|
let userId = ctx.options.accessToken.userId;
|
||||||
|
|
||||||
|
let currentUserIsManager = await models.Account.hasRole(userId, 'manager');
|
||||||
|
if (currentUserIsManager)
|
||||||
|
return;
|
||||||
|
|
||||||
let filter = {
|
let filter = {
|
||||||
fields: ['roleFk'],
|
fields: ['roleFk'],
|
||||||
where: {
|
where: {
|
||||||
|
@ -162,22 +167,22 @@ module.exports = Self => {
|
||||||
let query = 'SELECT * FROM clientCredit WHERE clientFk = ? ORDER BY created DESC LIMIT 1';
|
let query = 'SELECT * FROM clientCredit WHERE clientFk = ? ORDER BY created DESC LIMIT 1';
|
||||||
let instances = await Self.rawSql(query, [finalState.id]);
|
let instances = await Self.rawSql(query, [finalState.id]);
|
||||||
|
|
||||||
if (instances.length !== 1 || instances[0].workerFk == userId || instances[0].amount > 0)
|
if (instances.length !== 1 || instances[0].amount > 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
query = `SELECT COUNT(distinct r.id) > 0 as hasManagerRole
|
query = `
|
||||||
FROM clientCredit cc
|
SELECT COUNT(*) AS hasRoleManager
|
||||||
JOIN worker em ON em.id = cc.workerFk
|
FROM worker em
|
||||||
JOIN account.user ac ON ac.id = em.userFk
|
JOIN account.user ac ON ac.id = em.userFk
|
||||||
JOIN salix.RoleMapping rm ON rm.principalId = ac.id
|
JOIN salix.RoleMapping rm ON rm.principalId = ac.id
|
||||||
JOIN account.role r on r.id = rm.roleId
|
JOIN account.role r on r.id = rm.roleId
|
||||||
WHERE rm.principalType = 'USER'
|
WHERE em.id = ?
|
||||||
AND cc.workerFk = ?
|
AND rm.principalType = 'USER'
|
||||||
AND r.name = 'manager'`;
|
AND r.name = 'manager'`;
|
||||||
|
|
||||||
let instance = await Self.rawSql(query, [instances[0].workerFk]);
|
let instance = await Self.rawSql(query, [instances[0].workerFk]);
|
||||||
|
|
||||||
if (instance[0].hasManagerRole > 0)
|
if (instance[0].hasRoleManager)
|
||||||
throw new Error('Only manager can change the credit');
|
throw new Error('Only manager can change the credit');
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue