Adrian Flores Cortes
|
2b2361d87c
|
feat(ux-ui): add hooks, providers, i18n, and update shared exports
- usePermissions, useFilteredNavigation, useTheme, useTenantTheme
- ThemeProvider, TenantThemeProvider
- i18n config with ES/EN locales
- Updated EmptyState with SVG illustrations
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2026-02-03 19:26:16 -06:00 |
|
Adrian Flores Cortes
|
a3b61b8ae4
|
[RBAC-004] feat: Add frontend permission integration
Phase 4 frontend implementation:
- permissions.api.ts: API service for GET /api/v1/permissions/me
- usePermissionStore.ts: Zustand store with caching (5min TTL)
- usePermissions.tsx: React hook with auto-fetch on auth
- CanAccess component: Permission-based conditional rendering
Features:
- can(resource, action): Single permission check
- canAny(...codes): OR logic for multiple permissions
- canAll(...codes): AND logic for multiple permissions
- hasRole/hasAnyRole: Role-based checks
- Super admin bypass
- Auto-fetch on authentication
- Cache invalidation on logout
Usage example:
```tsx
const { can, canAny } = usePermissions();
if (!can('invoices', 'create')) return <AccessDenied />;
<CanAccess permission="invoices:delete">
<DeleteButton />
</CanAccess>
```
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2026-01-31 01:57:04 -06:00 |
|