fix: Allow modification of role warehouse in users endpoint
This commit is contained in:
@@ -54,24 +54,38 @@ const patchProfileData = async(req, res) => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Verify if the author has enough rights to change the affected user role
|
||||||
|
* @param {*} change_author_job_role
|
||||||
|
* @param {*} affected_job_role
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
function job_role_change_allowance( change_author_job_role , affected_job_role ){
|
function job_role_change_allowance( change_author_job_role , affected_job_role ){
|
||||||
try{
|
try{
|
||||||
|
/** Only owner and managers can change the role */
|
||||||
if( (change_author_job_role !== "owner") && (change_author_job_role !== "manager") ){
|
if( (change_author_job_role !== "owner") && (change_author_job_role !== "manager") ){
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** No one can affect the role of the owner */
|
||||||
if( affected_job_role === "owner" ){
|
if( affected_job_role === "owner" ){
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch( affected_job_role ){
|
/** You can only modify the role of a user if it is in the following list */
|
||||||
case 'manager':
|
const modifiable_roles = [
|
||||||
case 'driver':
|
'manager',
|
||||||
case 'staff':
|
'driver',
|
||||||
|
'staff',
|
||||||
|
'warehouse'
|
||||||
|
];
|
||||||
|
|
||||||
|
if( modifiable_roles.includes( affected_job_role ) ){
|
||||||
return true;
|
return true;
|
||||||
default:
|
}else{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
}catch( error ){
|
}catch( error ){
|
||||||
console.error( error );
|
console.error( error );
|
||||||
return res.status( 500 ).send( { error } );
|
return res.status( 500 ).send( { error } );
|
||||||
|
|||||||
Reference in New Issue
Block a user