Documentación de Proyecto Sincro

PermisosDao
in package

FinalYes

PermisosDao — Operaciones sobre la tabla `permisos`. Usa mysqli.

Modelo de tripletas: (user_id, pagina_id, conexion_id).

  1. SIDEBAR / NAVEGACIÓN getPaginasUsuario() Páginas planas con jerarquía y orden. getPaginasUsuarioAgrupadas() Árbol anidado hasta 3 niveles.

  2. MATRIZ DE PERMISOS getMatrizPermisosUsuario() { cid: { pid: true } }

  3. ÁMBITO ADMINISTRATIVO getAmbitoAdmin() Conexiones del admin. getUsuariosEnAmbito() Listado para panelAdmin. userIsContainedInScope() Validación de borrado/desactivación.

  4. SINCRONIZACIÓN syncPermisosForUser() Aplica cambios dentro del scope.

  5. CATÁLOGOS getCatalogoPaginas() Con campo label para panelAdmin. buildLabel() Helper para la ruta visual. getPaginaPrincipal() Primera página del usuario.

Table of Contents

Constants

CATEGORIA_CONTROL  = 'control'
RUTA_PANEL_ADMIN  = '/pages/panelAdmin'

Methods

buildLabel()  : string
Etiqueta visual concatenada para una página.
getAmbitoAdmin()  : array<string|int, int>
IDs de conexiones sobre las que el admin puede gestionar permisos.
getCatalogoPaginas()  : array<int, array{id: int, nombre: string, categoria: string, subcategoria: string|null, subsubcategoria: string|null, orden: int, ruta: string, label: string}>
Catálogo completo de páginas con campo `label` para panelAdmin.
getMatrizPermisosUsuario()  : array<string|int, mixed>
Obtiene los permisos del usuario
getPaginaPrincipal()  : string|false
Primera página a la que el usuario tiene acceso.
getPaginasUsuario()  : array<int, array{id: int, nombre: string, categoria: string, subcategoria: string|null, subsubcategoria: string|null, orden: int, ruta: string}>
Páginas visibles para el usuario, planas, con campos de jerarquía.
getPaginasUsuarioAgrupadas()  : array<string|int, mixed>
Árbol anidado hasta 3 niveles para el sidebar.
getUsuariosEnAmbito()  : array<int, array{id: int, nombre: string, usuario: string, tipo: int, habilitado: bool, centros: array}>
Usuarios visibles para el admin, con sus conexiones como centros.
syncPermisosForUser()  : int
Sincroniza permisos dentro del scope del admin.
userIsContainedInScope()  : bool
True si TODOS los permisos del target están dentro del scope del caller.
fetchAll()  : array<string|int, mixed>
Helper

Constants

CATEGORIA_CONTROL

public mixed CATEGORIA_CONTROL = 'control'

RUTA_PANEL_ADMIN

public mixed RUTA_PANEL_ADMIN = '/pages/panelAdmin'

Methods

buildLabel()

Etiqueta visual concatenada para una página.

public static buildLabel(string $categoria, string|null $subcategoria, string|null $subsubcategoria, string $nombre) : string
Parameters
$categoria : string

: categoria de la pagina

$subcategoria : string|null

: subcategoria de la pagina

$subsubcategoria : string|null

: subsubcategoria de la pagina

$nombre : string

: nombre de la pagina

Return values
string —

nombre apilado

getAmbitoAdmin()

IDs de conexiones sobre las que el admin puede gestionar permisos.

public static getAmbitoAdmin(int $userId, int $rol) : array<string|int, int>
Parameters
$userId : int

: id del usuario

$rol : int

: rol del usuario

Return values
array<string|int, int> —

: id de conexiones

getCatalogoPaginas()

Catálogo completo de páginas con campo `label` para panelAdmin.

public static getCatalogoPaginas() : array<int, array{id: int, nombre: string, categoria: string, subcategoria: string|null, subsubcategoria: string|null, orden: int, ruta: string, label: string}>
Return values
array<int, array{id: int, nombre: string, categoria: string, subcategoria: string|null, subsubcategoria: string|null, orden: int, ruta: string, label: string}>

getMatrizPermisosUsuario()

Obtiene los permisos del usuario

public static getMatrizPermisosUsuario(int $userId) : array<string|int, mixed>
Parameters
$userId : int

: id del usuario

Return values
array<string|int, mixed> —

Matriz { cid: { pid: true } } para el modal de panelAdmin.

getPaginaPrincipal()

Primera página a la que el usuario tiene acceso.

public static getPaginaPrincipal(int $userId) : string|false

Usada en seleccionCampana para la redirección post-login.

Parameters
$userId : int

: id del usuario

Return values
string|false —

direccion de la pagina o false si no tiene al menos una

getPaginasUsuario()

Páginas visibles para el usuario, planas, con campos de jerarquía.

public static getPaginasUsuario(int $userId, int $rol) : array<int, array{id: int, nombre: string, categoria: string, subcategoria: string|null, subsubcategoria: string|null, orden: int, ruta: string}>
Parameters
$userId : int

: id del usuario

$rol : int

: rol del usuario

Return values
array<int, array{id: int, nombre: string, categoria: string, subcategoria: string|null, subsubcategoria: string|null, orden: int, ruta: string}>

getPaginasUsuarioAgrupadas()

Árbol anidado hasta 3 niveles para el sidebar.

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

: id del usuario

$rol : int

: rol del usuario

Return values
array<string|int, mixed> —

paginas agrupadas

getUsuariosEnAmbito()

Usuarios visibles para el admin, con sus conexiones como centros.

public static getUsuariosEnAmbito(int $userId, int $rol) : array<int, array{id: int, nombre: string, usuario: string, tipo: int, habilitado: bool, centros: array}>
Parameters
$userId : int

: id del usuario

$rol : int

: rol del usuario

Return values
array<int, array{id: int, nombre: string, usuario: string, tipo: int, habilitado: bool, centros: array}>

syncPermisosForUser()

Sincroniza permisos dentro del scope del admin.

public static syncPermisosForUser(int $targetUserId, array<string|int, mixed> $nuevos, array<string|int, mixed> $scope) : int

Solo toca conexiones que estén en $scope.

Parameters
$targetUserId : int

: id del usuario objetivo

$nuevos : array<string|int, mixed>

: nuevos permisos

$scope : array<string|int, mixed>

: alcance del llamante

Tags
bool

int

throws
RuntimeException|Throwable

si se intenta asignar 'control' a tipo=0.

Return values
int

userIsContainedInScope()

True si TODOS los permisos del target están dentro del scope del caller.

public static userIsContainedInScope(int $targetUserId, int $rol, int $callerUserId) : bool
Parameters
$targetUserId : int

: id del usuario objetivo

$rol : int

: rol del usuario

$callerUserId : int

: id del usuario que llama

Tags
note

SUPER siempre devuelve true.

Return values
bool

fetchAll()

Helper

private static fetchAll(mysqli_result $result) : array<string|int, mixed>
Parameters
$result : mysqli_result

: resultado a efectuar fetch_all

Return values
array<string|int, mixed>

        
On this page

Search results