refactor: move variable out of function
Some checks failed
Spell Check / Spell Check with Typos (push) Failing after 5s
Some checks failed
Spell Check / Spell Check with Typos (push) Failing after 5s
This commit is contained in:
parent
5e76c4d50d
commit
d880e1a1c5
1 changed files with 62 additions and 61 deletions
|
|
@ -232,71 +232,72 @@ export function isRoleInclude(role2check: string[]): boolean {
|
||||||
return isIncluded;
|
return isIncluded;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const allRoles = [
|
||||||
|
'head_of_admin',
|
||||||
|
'admin',
|
||||||
|
'executive',
|
||||||
|
'accountant',
|
||||||
|
'branch_admin',
|
||||||
|
'branch_manager',
|
||||||
|
'branch_accountant',
|
||||||
|
'head_of_sale',
|
||||||
|
'sale',
|
||||||
|
'data_entry',
|
||||||
|
'document_checker',
|
||||||
|
'messenger',
|
||||||
|
'corporate_customer',
|
||||||
|
'agency',
|
||||||
|
];
|
||||||
|
|
||||||
|
const permissions = {
|
||||||
|
branch: {
|
||||||
|
edit: allRoles.slice(0, 7),
|
||||||
|
view: allRoles.slice(0, 7),
|
||||||
|
},
|
||||||
|
personnel: {
|
||||||
|
edit: allRoles.slice(0, 6).filter((r) => r !== 'accountant'),
|
||||||
|
view: allRoles.slice(0, 6).filter((r) => r !== 'accountant'),
|
||||||
|
},
|
||||||
|
product: {
|
||||||
|
edit: allRoles.slice(0, 7),
|
||||||
|
view: allRoles,
|
||||||
|
},
|
||||||
|
workflow: {
|
||||||
|
edit: allRoles.slice(0, 6),
|
||||||
|
view: allRoles.filter((r) => r !== 'branch_accountant'),
|
||||||
|
},
|
||||||
|
customer: {
|
||||||
|
edit: allRoles.slice(0, 6),
|
||||||
|
view: allRoles.slice(0, 8),
|
||||||
|
},
|
||||||
|
agencies: {
|
||||||
|
edit: allRoles.slice(0, 7),
|
||||||
|
view: allRoles,
|
||||||
|
},
|
||||||
|
related: {
|
||||||
|
// ใช้กับหลายเมนู
|
||||||
|
edit: allRoles.slice(0, 6),
|
||||||
|
view: allRoles,
|
||||||
|
},
|
||||||
|
account: {
|
||||||
|
edit: allRoles.slice(0, 6),
|
||||||
|
view: allRoles.slice(0, 7),
|
||||||
|
},
|
||||||
|
uploadSlip: {
|
||||||
|
edit: allRoles.slice(0, 6),
|
||||||
|
view: allRoles.filter((r) => r !== 'head_of_sale' && r !== 'sale'),
|
||||||
|
},
|
||||||
|
dashBoard: {
|
||||||
|
edit: allRoles.slice(0, 6).filter((r) => r !== 'admin'),
|
||||||
|
view: allRoles.filter((r) => r !== 'admin'),
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
export function canAccess(
|
export function canAccess(
|
||||||
menu: string,
|
menu: keyof typeof permissions,
|
||||||
action: 'edit' | 'view' = 'view',
|
action: 'edit' | 'view' = 'view',
|
||||||
): boolean {
|
): boolean {
|
||||||
// uma_authorization = all roles
|
// uma_authorization = all roles
|
||||||
const allRoles = [
|
|
||||||
'head_of_admin',
|
|
||||||
'admin',
|
|
||||||
'executive',
|
|
||||||
'accountant',
|
|
||||||
'branch_admin',
|
|
||||||
'branch_manager',
|
|
||||||
'branch_accountant',
|
|
||||||
'head_of_sale',
|
|
||||||
'sale',
|
|
||||||
'data_entry',
|
|
||||||
'document_checker',
|
|
||||||
'messenger',
|
|
||||||
'corporate_customer',
|
|
||||||
'agency',
|
|
||||||
];
|
|
||||||
|
|
||||||
const permissions = {
|
|
||||||
branch: {
|
|
||||||
edit: allRoles.slice(0, 7),
|
|
||||||
view: allRoles.slice(0, 7),
|
|
||||||
},
|
|
||||||
personnel: {
|
|
||||||
edit: allRoles.slice(0, 6).filter((r) => r !== 'accountant'),
|
|
||||||
view: allRoles.slice(0, 6).filter((r) => r !== 'accountant'),
|
|
||||||
},
|
|
||||||
product: {
|
|
||||||
edit: allRoles.slice(0, 7),
|
|
||||||
view: allRoles,
|
|
||||||
},
|
|
||||||
workflow: {
|
|
||||||
edit: allRoles.slice(0, 6),
|
|
||||||
view: allRoles.filter((r) => r !== 'branch_accountant'),
|
|
||||||
},
|
|
||||||
customer: {
|
|
||||||
edit: allRoles.slice(0, 6),
|
|
||||||
view: allRoles.slice(0, 8),
|
|
||||||
},
|
|
||||||
agencies: {
|
|
||||||
edit: allRoles.slice(0, 7),
|
|
||||||
view: allRoles,
|
|
||||||
},
|
|
||||||
related: {
|
|
||||||
// ใช้กับหลายเมนู
|
|
||||||
edit: allRoles.slice(0, 6),
|
|
||||||
view: allRoles,
|
|
||||||
},
|
|
||||||
account: {
|
|
||||||
edit: allRoles.slice(0, 6),
|
|
||||||
view: allRoles.slice(0, 7),
|
|
||||||
},
|
|
||||||
uploadSlip: {
|
|
||||||
edit: allRoles.slice(0, 6),
|
|
||||||
view: allRoles.filter((r) => r !== 'head_of_sale' && r !== 'sale'),
|
|
||||||
},
|
|
||||||
dashBoard: {
|
|
||||||
edit: allRoles.slice(0, 6).filter((r) => r !== 'admin'),
|
|
||||||
view: allRoles.filter((r) => r !== 'admin'),
|
|
||||||
},
|
|
||||||
};
|
|
||||||
const roles = getRole() ?? [];
|
const roles = getRole() ?? [];
|
||||||
if (roles.includes('system')) return true;
|
if (roles.includes('system')) return true;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue