feat(auth): nuevo rol 'admin' (programador, modo Dios oculto)
JERARQUÍA DE ROLES
admin = programador. Modo Dios. Oculto de dropdowns y del Panel
de Control para non-admins. Acceso total.
socio = modo Dios visible. Acceso al Panel, ve y edita todo.
abogado = crea casos, ve los suyos + donde es involucrado.
usuario = solo ve/edita donde es involucrado.
* Migración 008: agrega 'admin' al ENUM users.role. Promueve a
ozerpa@aal-law.com como admin.
* Auth.php: isAdmin() nuevo. isSocio() y isAbogado() ahora incluyen
admin (admin hereda todos los poderes de socio). canCreate/canDelete
también heredan.
* Lookups.php:
- abogadoNames() ya filtraba a role IN (socio, abogado) → admins no
aparecen en el dropdown "Abogado Solicitante".
- involucrablesUsers() agrega filtro role != 'admin' → admins no
aparecen en el picker de Involucrados.
- allUsers($includeAdmins) parametrizada: socios reciben la lista
sin admins, admins reciben todo.
* Bootstrap.php: window.DONNA.isAdmin disponible al frontend.
* admin/api.php:
- list_users pasa Auth::isAdmin() para filtrar.
- create_user / update_user: rechazan role='admin' si quien llama no
es admin. Solo admins pueden editar a otros admins.
- delete_user: protege admins (extends al check existente de socio).
- Self-protection extendida: admin no puede demoverse por debajo de
socio (queda en god-mode tier).
* admin.html: opción 'admin' en role dropdown solo visible si el
usuario actual es admin. Role pill navy/blanca para admin.
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
-- ============================================================
|
||||
-- Donna — Schema 008: Rol 'admin' (programador / modo Dios oculto)
|
||||
-- ============================================================
|
||||
-- Jerarquía de roles (de mayor a menor poder):
|
||||
-- admin → programador. Modo Dios. Oculto de dropdowns y del
|
||||
-- Panel de Control para non-admins. Acceso total.
|
||||
-- socio → modo Dios visible. Acceso al Panel, ve y edita todo.
|
||||
-- abogado → crea casos, ve los suyos + involucrados.
|
||||
-- usuario → solo ve/edita donde es involucrado.
|
||||
|
||||
ALTER TABLE users
|
||||
MODIFY COLUMN role ENUM('admin','socio','abogado','usuario')
|
||||
NOT NULL DEFAULT 'usuario';
|
||||
|
||||
-- Promover al programador
|
||||
UPDATE users SET role='admin' WHERE email='ozerpa@aal-law.com';
|
||||
Reference in New Issue
Block a user