Overview
The RIS Gran Chimú app features a unified dashboard system that dynamically displays administrative options based on the authenticated user’s role and permissions. The dashboard serves as the central hub for content management and administrative tasks.Entry Point Routing
The app uses intelligent routing at the entry point to direct users based on authentication status:Role-Based Access Control
The dashboard implements a permission-based system using thePermissionContext:
User Authentication
User logs in via
useAuth hook, which validates credentials and retrieves user data with role information.Permission Loading
PermissionProvider fetches the user’s permissions from /auth/permissions endpoint.Permission Context Implementation
src/context/PermissionContext.tsx:50-53
Admin Override: Administrators automatically have access to all features regardless of explicit permissions (
user?.role === 'admin').Dynamic Dashboard Structure
The unified dashboard atapp/(main)/dashboard/index.tsx displays management options based on permissions:
app/(main)/dashboard/index.tsx:15-72
Dashboard Routes
Admin Routes
User Management
User Management
Route:
/(main)/dashboard/admin/usersPermission Required: manage_usersFeatures:- Create, edit, and delete users
- Search by ID, name, email, or role
- Re-authentication for sensitive operations
- Password visibility toggle
- Audit trail (created_by, updated_by timestamps)
app/(main)/dashboard/admin/users/index.tsx.Content Management Routes
All content management routes are located underapp/(main)/dashboard/manage/:
| Route | Permission | Description |
|---|---|---|
/manage/noticias | manage_noticias | Create and publish news articles |
/manage/establecimientos | manage_establecimientos | Register health centers |
/manage/servicios | manage_servicios | Configure medical services |
/manage/estrategias | manage_estrategias | Manage health programs |
/manage/normas | manage_normas | Administer regulations |
/manage/roles | manage_roles | Configure roles and permissions |
User Profile Section
The dashboard header displays the authenticated user’s information:app/(main)/dashboard/index.tsx:83-95
Logout Flow
Secure logout with confirmation dialog:app/(main)/dashboard/index.tsx:97-113
Empty State Handling
If a user has no assigned permissions:app/(main)/dashboard/index.tsx:148-150
Navigation Hierarchy
Permission Codes Reference
Content Permissions
Content Permissions
manage_noticias- Publish news articlesmanage_establecimientos- Register health facilitiesmanage_servicios- Configure medical servicesmanage_estrategias- Manage health programsmanage_normas- Administer regulations
Administrative Permissions
Administrative Permissions
manage_users- User CRUD operationsmanage_roles- Configure roles and permissions
Design System
Dashboard cards use color-coded icons for visual hierarchy:- Users:
#007AFF(Azure) - Roles:
#FF9500(Orange) - News:
#FF2D55(Red) - Services:
#FF9500(Orange) - Establishments:
#34C759(Green) - Strategies:
#AF52DE(Purple) - Norms:
#5856D6(Indigo)
Related Documentation
Admin Panel
User and content management features
Authentication
Login and session management
