refactor: move variable out of function
Some checks failed
Spell Check / Spell Check with Typos (push) Failing after 5s

This commit is contained in:
Methapon2001 2025-07-03 14:53:33 +07:00
parent 5e76c4d50d
commit d880e1a1c5

View file

@ -232,71 +232,72 @@ export function isRoleInclude(role2check: string[]): boolean {
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(
menu: string,
menu: keyof typeof permissions,
action: 'edit' | 'view' = 'view',
): boolean {
// 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() ?? [];
if (roles.includes('system')) return true;