- Update page title, metadata, sign-in header, nav bar brand name - Update dev account emails from ondeck.local to horizon.local - Update comments in permissions.ts and types/index.ts - Update NEXTAUTH_URL to https://horizon.seubert.cloud - Update systemd timer service URL and log path
96 lines
2.7 KiB
TypeScript
96 lines
2.7 KiB
TypeScript
/**
|
|
* Permission definitions for Horizon application
|
|
*/
|
|
|
|
export const PERMISSIONS = {
|
|
// User management
|
|
USERS_READ: 'users.read',
|
|
USERS_WRITE: 'users.write',
|
|
USERS_DELETE: 'users.delete',
|
|
|
|
// Client management
|
|
CLIENTS_READ: 'clients.read',
|
|
CLIENTS_WRITE: 'clients.write',
|
|
CLIENTS_DELETE: 'clients.delete',
|
|
|
|
// Task management
|
|
TASKS_READ: 'tasks.read',
|
|
TASKS_WRITE: 'tasks.write',
|
|
TASKS_DELETE: 'tasks.delete',
|
|
TASKS_ASSIGN: 'tasks.assign',
|
|
|
|
// Designation management
|
|
DESIGNATIONS_READ: 'designations.read',
|
|
DESIGNATIONS_WRITE: 'designations.write',
|
|
DESIGNATIONS_DELETE: 'designations.delete',
|
|
|
|
// Template management
|
|
TEMPLATES_READ: 'templates.read',
|
|
TEMPLATES_WRITE: 'templates.write',
|
|
TEMPLATES_DELETE: 'templates.delete',
|
|
|
|
// Sync operations
|
|
SYNC_TRIGGER: 'sync.trigger',
|
|
SYNC_CONFIGURE: 'sync.configure',
|
|
|
|
// Reporting
|
|
REPORTS_VIEW: 'reports.view',
|
|
|
|
// Audit logs
|
|
AUDIT_VIEW: 'audit.view',
|
|
} as const
|
|
|
|
/**
|
|
* Role-based permission sets
|
|
*/
|
|
export const ROLE_PERMISSIONS = {
|
|
Admin: {
|
|
[PERMISSIONS.USERS_READ]: true,
|
|
[PERMISSIONS.USERS_WRITE]: true,
|
|
[PERMISSIONS.USERS_DELETE]: true,
|
|
[PERMISSIONS.CLIENTS_READ]: true,
|
|
[PERMISSIONS.CLIENTS_WRITE]: true,
|
|
[PERMISSIONS.CLIENTS_DELETE]: true,
|
|
[PERMISSIONS.TASKS_READ]: true,
|
|
[PERMISSIONS.TASKS_WRITE]: true,
|
|
[PERMISSIONS.TASKS_DELETE]: true,
|
|
[PERMISSIONS.TASKS_ASSIGN]: true,
|
|
[PERMISSIONS.DESIGNATIONS_READ]: true,
|
|
[PERMISSIONS.DESIGNATIONS_WRITE]: true,
|
|
[PERMISSIONS.DESIGNATIONS_DELETE]: true,
|
|
[PERMISSIONS.TEMPLATES_READ]: true,
|
|
[PERMISSIONS.TEMPLATES_WRITE]: true,
|
|
[PERMISSIONS.TEMPLATES_DELETE]: true,
|
|
[PERMISSIONS.SYNC_TRIGGER]: true,
|
|
[PERMISSIONS.SYNC_CONFIGURE]: true,
|
|
[PERMISSIONS.REPORTS_VIEW]: true,
|
|
[PERMISSIONS.AUDIT_VIEW]: true,
|
|
},
|
|
Manager: {
|
|
[PERMISSIONS.USERS_READ]: true,
|
|
[PERMISSIONS.CLIENTS_READ]: true,
|
|
[PERMISSIONS.CLIENTS_WRITE]: true,
|
|
[PERMISSIONS.TASKS_READ]: true,
|
|
[PERMISSIONS.TASKS_WRITE]: true,
|
|
[PERMISSIONS.TASKS_ASSIGN]: true,
|
|
[PERMISSIONS.DESIGNATIONS_READ]: true,
|
|
[PERMISSIONS.TEMPLATES_READ]: true,
|
|
[PERMISSIONS.TEMPLATES_WRITE]: true,
|
|
[PERMISSIONS.REPORTS_VIEW]: true,
|
|
},
|
|
'Account Executive': {
|
|
[PERMISSIONS.CLIENTS_READ]: true,
|
|
[PERMISSIONS.CLIENTS_WRITE]: true,
|
|
[PERMISSIONS.TASKS_READ]: true,
|
|
[PERMISSIONS.TASKS_WRITE]: true,
|
|
[PERMISSIONS.DESIGNATIONS_READ]: true,
|
|
},
|
|
Claims: {
|
|
[PERMISSIONS.CLIENTS_READ]: true,
|
|
[PERMISSIONS.TASKS_READ]: true,
|
|
[PERMISSIONS.TASKS_WRITE]: true,
|
|
},
|
|
} as const
|
|
|
|
export type RoleName = keyof typeof ROLE_PERMISSIONS
|
|
export type Permission = typeof PERMISSIONS[keyof typeof PERMISSIONS]
|