nxtgauge-admin-solid/src/lib/admin-modules.ts
Ashwin Kumar 2d161c4f15 feat(admin-parity): approval management, submission viewer, role builder offline fallback
- 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>
2026-03-23 00:34:38 +01:00

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,
})),
);