- Rebuilt approval.tsx: reject with reason prompt, request changes with field
keys, request more documents flow, RoleTypeBadge per role type, parsed
requestReason (ONBOARDING_SUBMISSION prefix), management page routing for
approved items, inline ApprovalDetailPanel with remarks timeline
- Rebuilt approval/[id].tsx: full onboarding submission viewer loading from
GET /api/admin/approvals/submission/{user_id}?roleKey=X, flattenFields
recursive flattener, detectKind image/pdf/document/url/text classifier,
image lightbox, PDF iframe modal, approve/reject per role type routing
- Added src/lib/admin-modules.ts: STATIC_PERMISSIONS fallback (39 modules x4
actions) for Internal Role Builder when backend is offline
- roles/create.tsx + roles/[id]/edit.tsx: use STATIC_PERMISSIONS when API
returns empty or fails, builder now works offline
- AdminShell + AdminSidebar: alignment/style fixes from parity review
- ExternalRoleForm: extended fields for external runtime role management
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
59 lines
1.2 KiB
TypeScript
59 lines
1.2 KiB
TypeScript
/**
|
|
* Static fallback module + permission list for the Internal Role Builder.
|
|
* Used when the backend /api/admin/permissions endpoint is unavailable (e.g. preview mode).
|
|
* Synthetic IDs follow the pattern "static:{module}:{action}".
|
|
*/
|
|
|
|
export type Permission = { id: string; module: string; action: string };
|
|
|
|
const ACTIONS = ['Read', 'Create', 'Update', 'Delete'] as const;
|
|
|
|
const ADMIN_MODULES = [
|
|
'Users',
|
|
'Employees',
|
|
'Companies',
|
|
'Candidates',
|
|
'Customers',
|
|
'Photographers',
|
|
'MakeupArtists',
|
|
'Tutors',
|
|
'Developers',
|
|
'VideoEditors',
|
|
'FitnessTrainers',
|
|
'CateringServices',
|
|
'GraphicDesigners',
|
|
'SocialMediaManagers',
|
|
'Roles',
|
|
'RuntimeRoles',
|
|
'OnboardingSchemas',
|
|
'Approvals',
|
|
'Departments',
|
|
'Designations',
|
|
'InternalDashboards',
|
|
'ExternalDashboards',
|
|
'Jobs',
|
|
'Leads',
|
|
'Pricing',
|
|
'Credits',
|
|
'Coupons',
|
|
'Discounts',
|
|
'Taxes',
|
|
'Orders',
|
|
'Invoices',
|
|
'Reviews',
|
|
'Support',
|
|
'Reports',
|
|
'Ledger',
|
|
'KnowledgeBase',
|
|
'Notifications',
|
|
'Financial',
|
|
'Settings',
|
|
];
|
|
|
|
export const STATIC_PERMISSIONS: Permission[] = ADMIN_MODULES.flatMap((mod) =>
|
|
ACTIONS.map((action) => ({
|
|
id: `static:${mod}:${action}`,
|
|
module: mod,
|
|
action,
|
|
})),
|
|
);
|