Documentación de Proyecto Sincro

ControladorPermisos

ControladorPermisos — Lógica de aplicación sobre el modelo (usuario × página × conexión).

Esta clase NO ejecuta SQL directamente, todo va a PermisosDao / ConexionConfigDao. Aquí solo viven:

  • Aplicación de las reglas de rol.
  • Agrupación/forma de los datos para el frontend.
  • Envoltura de errores con códigos de estado.

Funciones por bloque:

Sidebar / navegación: getMisPaginasParaSidebar() agrupado por categoría getMisConexionesParaPagina() conexiones para el checkbox

Validación de acceso a recursos: validarAcceso() usada por requireAuth() de api.php

Panel administrativo: getUsuariosEnAmbito() getDatosModalUsuario() guardarPermisosUsuario() puedeEliminarUsuario() getCentrosEditablesDelAdmin()

SUPER_USER (rol 2) hace bypass donde corresponda.

Table of Contents

Methods

getCentrosEditablesDelAdmin()  : array<string|int, mixed>
Conexiones del ámbito del admin con datos públicos.
getDatosModalUsuario()  : array<string|int, mixed>
Datos para abrir el modal de un usuario:
getMisPaginasParaSidebar()  : array<string|int, mixed>
Devuelve las páginas visibles para el usuario, agrupadas por categoría.
getPaginaPrincipal()  : array<string|int, mixed>
Obtiene la pagina principal del usuario ( idealmente dashboard )
getUsuariosEnAmbito()  : array<string|int, mixed>
Listado de usuarios visibles para el admin.
guardarPermisosUsuario()  : array<string|int, mixed>
Guarda los cambios de permisos enviados desde el modal.
puedeEliminarUsuario()  : bool
Reglas para eliminar/desactivar un usuario: - SUPER siempre puede.
validarAcceso()  : bool
Comprueba que el usuario tiene permiso a la página sobre TODAS las conexiones indicadas. Usado por requireAuth() en api.php antes de ejecutar cualquier endpoint que opere sobre tracking_*.

Methods

getCentrosEditablesDelAdmin()

Conexiones del ámbito del admin con datos públicos.

public static getCentrosEditablesDelAdmin(int $callerId, int $rol) : array<string|int, mixed>

Usada en "Crear usuario" para acotar dónde puede asignar permisos.

Parameters
$callerId : int

: id del caller

$rol : int

: rol del caller

Return values
array<string|int, mixed> —

resultado de la operacion

getDatosModalUsuario()

Datos para abrir el modal de un usuario:

public static getDatosModalUsuario(int $callerId, int $rol, int $targetUserId) : array<string|int, mixed>

paginas: catálogo completo de páginas (encabezados del árbol). centros: conexiones a mostrar: · editables = ámbito del admin · bloqueadas = conexiones donde el usuario tiene permisos pero fuera del ámbito (visibles con candado, sin contenido). permisos: matriz { cid: { pid: true } } actual del usuario.

Parameters
$callerId : int
$rol : int
$targetUserId : int
Return values
array<string|int, mixed>

getMisPaginasParaSidebar()

Devuelve las páginas visibles para el usuario, agrupadas por categoría.

public static getMisPaginasParaSidebar(int $userId, int $rol) : array<string|int, mixed>

Las categorías sin páginas no aparecen.

Parameters
$userId : int

: id del usuario

$rol : int

: rol del usuario para control

Return values
array<string|int, mixed> —

resultado de la operacion

getPaginaPrincipal()

Obtiene la pagina principal del usuario ( idealmente dashboard )

public static getPaginaPrincipal(int $user_id) : array<string|int, mixed>
Parameters
$user_id : int

: id del usuario

Return values
array<string|int, mixed> —

resultado de la operacion

getUsuariosEnAmbito()

Listado de usuarios visibles para el admin.

public static getUsuariosEnAmbito(int $callerId, int $rol) : array<string|int, mixed>
Parameters
$callerId : int

: id del caller

$rol : int

: rol del caller

Return values
array<string|int, mixed> —

resultado de la operacion

guardarPermisosUsuario()

Guarda los cambios de permisos enviados desde el modal.

public static guardarPermisosUsuario(int $callerId, int $rol, int $targetUserId, array<string|int, mixed> $nuevos) : array<string|int, mixed>
Parameters
$callerId : int

: id del caller

$rol : int

: rol del caller

$targetUserId : int

: id del usuario a cambiar

$nuevos : array<string|int, mixed>

: nuevos permisos del usuario

Return values
array<string|int, mixed> —

resultado de la operacion

puedeEliminarUsuario()

Reglas para eliminar/desactivar un usuario: - SUPER siempre puede.

public static puedeEliminarUsuario(int $callerId, int $rol, int $targetUserId) : bool
  • Admin: solo si TODOS los permisos del destino están dentro de su scope.
  • Nadie puede operar sobre sí mismo.
Parameters
$callerId : int

: id del caller

$rol : int

: rol del caller

$targetUserId : int

: id del usuario objetivo

Return values
bool —

resultado de la operacion

validarAcceso()

Comprueba que el usuario tiene permiso a la página sobre TODAS las conexiones indicadas. Usado por requireAuth() en api.php antes de ejecutar cualquier endpoint que opere sobre tracking_*.

public static validarAcceso(int $userId, int $rol, int $paginaId, array<string|int, mixed> $conexionIds) : bool
Parameters
$userId : int

: id del usuario

$rol : int

: rol del usuario

$paginaId : int

: id de la pagina

$conexionIds : array<string|int, mixed>

: id de la conexion

Return values
bool —

resultado de la operacion


        
On this page

Search results