48 lines
1.8 KiB
JavaScript
48 lines
1.8 KiB
JavaScript
const roles = ['admin', 'finance', 'operations', 'viewer'];
|
|
|
|
const rolePermissions = {
|
|
admin: [
|
|
'Manage users, teams, roles, settings, and integrations',
|
|
'Create, edit, delete, import, export, and assign assets',
|
|
'Manage templates, tax rules, reports, and Workday sync'
|
|
],
|
|
finance: [
|
|
'Create, edit, delete, import, and export assets',
|
|
'Manage templates, tax rules, reports, and depreciation workflows',
|
|
'Assign and release assets'
|
|
],
|
|
operations: [
|
|
'Create and edit assets',
|
|
'Assign and release assets',
|
|
'Manage asset tasks, files, employees, and custody details'
|
|
],
|
|
viewer: [
|
|
'View assets, assignments, employees, templates, tax rules, and reports',
|
|
'No create, update, delete, import, export, or integration access'
|
|
]
|
|
};
|
|
|
|
const roleCapabilities = [
|
|
{ key: 'view_assets', label: 'View assets', roles: ['admin', 'finance', 'operations', 'viewer'] },
|
|
{ key: 'edit_assets', label: 'Create/edit assets', roles: ['admin', 'finance', 'operations'] },
|
|
{ key: 'delete_assets', label: 'Delete assets', roles: ['admin', 'finance'] },
|
|
{ key: 'import_export', label: 'Import/export data', roles: ['admin', 'finance'] },
|
|
{ key: 'assign_assets', label: 'Assign assets', roles: ['admin', 'finance', 'operations'] },
|
|
{ key: 'templates', label: 'Manage templates', roles: ['admin', 'finance'] },
|
|
{ key: 'tax_rules', label: 'Manage tax rules', roles: ['admin', 'finance'] },
|
|
{ key: 'workday', label: 'Manage Workday connector', roles: ['admin'] },
|
|
{ key: 'users', label: 'Manage users and teams', roles: ['admin'] },
|
|
{ key: 'settings', label: 'Manage app settings', roles: ['admin'] }
|
|
];
|
|
|
|
function isValidRole(role) {
|
|
return roles.includes(role);
|
|
}
|
|
|
|
module.exports = {
|
|
isValidRole,
|
|
roleCapabilities,
|
|
rolePermissions,
|
|
roles
|
|
};
|