Files
ERP_Distribution/distribution_fe/config/permissions.ts
T
Kalana B. Thilakarathna 0052725b88 feat: add user and role view sheets with detailed information display
- Created UserViewSheet component to display user details including username, full name, role, status, and timestamps.
- Created RoleViewSheet component to display role details including name, level, status, creation date, and associated permissions.
- Introduced permissions configuration in a new permissions.ts file, defining categories and permission codes for better management.
- Implemented middleware for authentication, ensuring access control for protected routes.
2026-10-18 23:11:01 +05:30

127 lines
2.3 KiB
TypeScript

export interface PermissionCategory {
id: string
label: string
codes: string[]
}
export const PERMISSION_CATEGORIES: PermissionCategory[] = [
{
id: 'sales',
label: 'Sales & Orders',
codes: [
'orders.view',
'stores.view',
'store.view',
'store.manage',
'sales_visits.checkin',
'return.view',
'return.manage',
],
},
{
id: 'operations',
label: 'Operations',
codes: [
'rides.view',
'loading.view',
'loading-sheet.view',
'loading-sheet.manage',
'delivery-task.view',
'delivery-task.manage',
],
},
{
id: 'stock',
label: 'Stock & Inventory',
codes: [
'warehouses.view',
'stock.view',
'stock.manage',
'items.view',
'categories.view',
],
},
{
id: 'procurement',
label: 'Procurement',
codes: [
'purchase_orders.view',
'purchase-order.view',
'purchase-order.manage',
'purchase-return.manage',
'grn.view',
'grn.manage',
'suppliers.view',
'supplier-claim.view',
'supplier-claim.manage',
],
},
{
id: 'pricing',
label: 'Pricing',
codes: [
'pricelists.view',
'price-list.view',
'price-list.manage',
'schemes.view',
'scheme.view',
'scheme.manage',
],
},
{
id: 'claims',
label: 'Claims',
codes: [
'claim.view',
'claim.manage',
],
},
{
id: 'network',
label: 'Network & Routes',
codes: [
'regions.view',
'region.view',
'region.manage',
'routes.view',
'route.view',
'route.manage',
],
},
{
id: 'fleet',
label: 'Fleet & Drivers',
codes: [
'vehicles.view',
'driver_profiles.view',
'driver.view',
'driver.manage',
'compliance.manage',
],
},
{
id: 'users',
label: 'User Management',
codes: [
'users.view',
'roles.view',
],
},
{
id: 'system',
label: 'System',
codes: [
'sys-config.view',
'sys-config.manage',
],
},
]
export const ALL_PERMISSION_CODES = new Set(
PERMISSION_CATEGORIES.flatMap((c) => c.codes),
)
export function getCategoryForCode(code: string): PermissionCategory | undefined {
return PERMISSION_CATEGORIES.find((c) => c.codes.includes(code))
}