Tema
Roles y Permisos
Descripcion
Sistema de control de acceso basado en roles. Cada usuario tiene un unico rol asignado que determina a que modulos y funcionalidades puede acceder dentro de la plataforma. El rol se almacena en la tabla user_roles y se carga automaticamente al iniciar sesion.
Roles disponibles
El sistema define 5 roles, ordenados de mayor a menor nivel de acceso:
| Rol | Etiqueta en UI | Descripcion |
|---|---|---|
superadmin | Super Admin | Acceso total a la plataforma. Gestion de edificios, billing, usuarios globales y herramientas internas. |
admin | Administrador | Administrador de un consorcio. Gestion completa de usuarios, unidades, expensas, pagos y configuracion del edificio. |
encargado | Encargado | Encargado del edificio. Acceso operativo a expensas, pagos, reclamos, reservas, documentos y anuncios. |
propietario | Propietario | Propietario de una unidad funcional. Ve sus expensas, reclamos, reservas, documentos y anuncios. |
inquilino | Inquilino | Inquilino de una unidad funcional. Mismo acceso que propietario. |
Jerarquia de permisos
superadmin
└── admin (Administrador)
└── encargado
└── propietario
└── inquilino- superadmin es el unico rol que puede ver y gestionar multiples edificios, acceder a billing y herramientas internas (email test, MercadoPago, leads enterprise).
- admin gestiona un consorcio completo: usuarios, personas, unidades, contabilidad, empleados, escalas salariales, liquidaciones y configuracion avanzada del consorcio.
- encargado tiene acceso operativo sin poder administrar usuarios, unidades, contabilidad ni configuracion del consorcio.
- propietario e inquilino tienen acceso identico: ven sus propias expensas y reclamos, y acceden a reservas, documentos y anuncios del consorcio.
Tabla comparativa de acceso por modulo
| Modulo | Superadmin | Admin | Encargado | Propietario | Inquilino |
|---|---|---|---|---|---|
| Dashboard | Si | Si | Si | Si | Si |
| Edificios | Si | - | - | - | - |
| Billing | Si | - | - | - | - |
| MercadoPago | Si | - | - | - | - |
| Leads Enterprise | Si | - | - | - | - |
| Usuarios (gestion global) | Si | - | - | - | - |
| Email Test | Si | - | - | - | - |
| Usuarios (del consorcio) | - | Si | - | - | - |
| Personas | - | Si | - | - | - |
| Unidades | - | Si | - | - | - |
| Expensas | - | Si | Si | Si* | Si* |
| Pagos | - | Si | Si | - | - |
| Reclamos | - | Si | Si | Si* | Si* |
| Backlog | - | Si | - | - | - |
| Reservas | - | Si | Si | Si | Si |
| Documentos | - | Si | Si | Si | Si |
| Anuncios | - | Si | Si | Si | Si |
| Contabilidad | - | Si | - | - | - |
| Empleados | - | Si | - | - | - |
| Escalas Salariales | - | Si | - | - | - |
| Liquidaciones | - | Si | - | - | - |
| Mi Plan | - | Si | - | - | - |
| Configuracion | Si | Si | Si | Si | Si |
* Propietario e inquilino ven sus propios registros ("Mis Expensas", "Mis Reclamos"), no los de todo el consorcio.
Proteccion de rutas
Cada grupo de rutas esta protegido por el componente ProtectedRoute, que recibe un array allowedRoles. El flujo es:
- Si el usuario no esta autenticado, se redirige a
/auth/login. - Si el usuario no tiene rol asignado todavia, se muestra un spinner con "Cargando permisos...".
- Si el rol del usuario no esta incluido en
allowedRoles, se redirige automaticamente al dashboard correspondiente a su rol (ej:/admin,/propietario,/encargado).
Modulos sujetos a plan
Algunos modulos marcados con moduleKey en el sidebar (Reclamos, Reservas, Documentos, Anuncios, Contabilidad) estan ademas sujetos al plan del consorcio. Si el plan no incluye el modulo, el item del menu se muestra con un badge de corona amarillo indicando que es una funcionalidad premium. Ver Planes para mas detalle.