Overview
Permissions are managed through the User Permissions Drawer (/components/Users/Permissions/UserPermissionsDrawer.jsx), which provides:
- Group-based permission organization
- Individual permission toggles
- Search and filtering capabilities
- Cascading permission logic (optional)
- Real-time permission updates
Accessing Permission Management
Only Admin users or users with
asignar_permisos permission can manage permissions.Permission Structure
Permissions are organized in a hierarchical structure:Unique permission identifier (snake_case format)
Human-readable description of what the permission grants
Whether the permission is currently assigned to the user
Permission Groups
Permissions are organized into functional groups for better management:Standard Groups
Standard groups display all permissions as individual toggleable items:- Vehiculos - Vehicle management permissions
- Usuarios - User management permissions
- Clientes - Client management permissions
- Inventario - Inventory permissions
- Reportes - Reporting and analytics permissions
- Configuraciones - System configuration permissions
Cascading Groups (Optional)
Cascading groups feature a master toggle that controls access to a feature set:- Master toggle enables/disables the entire group
- When master is ON, sub-permissions become available
- When master is OFF, all sub-permissions are disabled
- Visual highlighting indicates active cascading groups
Cascading mode is currently disabled by default (
isCascade: false). Enable it in the configuration to activate this behavior.Managing Permissions
Assigning Individual Permissions
To grant or revoke a single permission:- Open the permissions drawer for a user
- Find the permission in the list
- Toggle the switch to enable/disable
- Click Save Changes at the bottom
Using Search
The search bar filters permissions by:- Permission name (
nombre) - Permission description (
descripcion) - Group name
Master Toggle (Cascading Groups)
For groups with cascading enabled:- Toggle the master switch in the group header
- When enabled, the group expands to show sub-permissions
- Individual sub-permissions can be fine-tuned
- Disabling the master toggle removes all group permissions
Bulk Operations
To efficiently manage multiple permissions:- Use the search to filter relevant permissions
- Toggle multiple switches before saving
- Click Save Changes once to apply all changes
updateUserPermissions(userId, permissionList).
Permission Refresh and Caching
The permissions service implements cache-busting to ensure fresh data:Common Permission Sets
Basic User Permissions
Minimum permissions for standard users:ver_vehiculos- View vehicle listver_clientes- View clientsver_reportes- Access basic reports
Manager Permissions
Typical permissions for supervisors:- All Basic User permissions
crear_vehiculo- Add new vehicleseditar_vehiculo- Modify vehicle dataver_usuarios- View team memberscrear_reporte- Generate reports
Admin Permissions
Admins typically have:- All Manager permissions
gestion_usuarios- Full user managementasignar_permisos- Manage permissionseditar_configuraciones- System settingsver_paises,crear_paises,editar_paises- Location managementver_ciudades,crear_ciudades,editar_ciudades- City management
Permission Checking in Application
The application uses theuseAuth hook to check permissions:
- First check if user is Admin (bypass all checks)
- If not Admin, check specific permission via
hasPermiso() - Enable/disable UI elements based on result
UI States
Loading State
While fetching permissions:- Circular progress indicator displayed
- Drawer content area shows centered spinner
- Save button is disabled
Empty Search State
When search yields no results:- Filter icon with “No matches found” message
- Suggestion to clear or modify search terms
Error State
If permission loading fails:- Error toast notification displayed
- Message: “Failed to load permissions”
- Drawer remains open for retry
Saving Changes
When clicking Save Changes:Success Handling
- Success toast: “Permissions updated successfully”
- Drawer closes automatically
- Optional
onUpdateSuccesscallback fired
Permission Groups Reference
Vehicles (Vehiculos)
| Permission | Description |
|---|---|
ver_vehiculos | View vehicle list and details |
crear_vehiculo | Add new vehicles to the system |
editar_vehiculo | Modify existing vehicle information |
eliminar_vehiculo | Delete or archive vehicles |
gestion_vehiculos | Master permission for all vehicle operations |
Users (Usuarios)
| Permission | Description |
|---|---|
ver_usuarios | View user list |
crear_usuario | Create new user accounts |
editar_usuario | Modify user information |
eliminar_usuario | Deactivate user accounts |
restaurar_usuario | Restore deactivated users |
asignar_permisos | Manage user permissions |
gestion_usuarios | Master permission for user management |
Locations (Administración)
| Permission | Description |
|---|---|
ver_paises | View countries list |
crear_paises | Add new countries |
editar_paises | Modify country information |
eliminar_paises | Delete countries |
ver_ciudades | View cities list |
crear_ciudades | Add new cities |
editar_ciudades | Modify city information |
eliminar_ciudades | Delete cities |
Reports (Reportes)
| Permission | Description |
|---|---|
ver_reportes | Access reporting interface |
crear_reporte | Generate new reports |
exportar_reporte | Export reports to file formats |
Settings (Configuraciones)
| Permission | Description |
|---|---|
ver_configuraciones | View system settings |
editar_configuraciones | Modify system configuration |
Best Practices
Permission Assignment Strategy
- Principle of Least Privilege: Grant only necessary permissions
- Role-Based Templates: Create standard permission sets for common roles
- Regular Audits: Review permissions quarterly
- Document Custom Permissions: Keep notes on non-standard assignments
- Test After Changes: Verify user can access expected features
Troubleshooting
User Can’t Access Feature After Permission Grant
- Verify permission was saved (check for success toast)
- Ask user to log out and log back in
- Check if feature requires multiple permissions
- Verify user’s role doesn’t conflict with permission
Permissions Not Loading
- Check network connection
- Verify user has
asignar_permisosor Admin role - Check browser console for API errors
- Ensure backend permission service is running
Changes Not Persisting
- Verify you clicked Save Changes button
- Check for error toasts during save
- Reload permissions drawer to verify
- Check backend logs for save failures
API Reference
Get User Permissions
Update User Permissions
userId- User ID to updatepermissionArray- Array of permission names (strings)
Related Pages
- User Management - Create and manage users
- Settings - Configure system settings
- Locations - Manage countries and cities