Guard
in package
Aplica el control de acceso declarado por la ruta.
Orden: sesión → binding → inactividad → identidad → CSRF → rol → (solo TRACKING) conexiones y permiso por página.
Table of Contents
Methods
- aplicar() : Contexto
- leerConexiones() : array<string|int, int>
- Lee y normaliza las conexiones solicitadas.
- requireSesion() : void
- Sesión activa + binding IP/UA + control de inactividad.
- resolverPaginaId() : int
- Resuelve el id de página desde su ruta declarada.
Methods
aplicar()
public
static aplicar(Ruta $ruta) : Contexto
Parameters
- $ruta : Ruta
-
: declaración de la ruta a ejecutar
Return values
Contexto —contexto autorizado
leerConexiones()
Lee y normaliza las conexiones solicitadas.
private
static leerConexiones() : array<string|int, int>
Return values
array<string|int, int> —ids únicos y positivos
requireSesion()
Sesión activa + binding IP/UA + control de inactividad.
private
static requireSesion(bool $renovar) : void
Los valores de binding se comprueban con is_string antes de pasarlos a hash_equals: un $_SESSION corrupto con un array provocaría un TypeError y un 500, cuando la respuesta correcta es 401.
Parameters
- $renovar : bool
-
: si false, no actualiza last_activity (sondeos)
resolverPaginaId()
Resuelve el id de página desde su ruta declarada.
private
static resolverPaginaId(string $ruta) : int
El resultado se cachea en sesión SOLO si es positivo: cachear el 0 dejaría la ruta rota hasta el siguiente inicio de sesión, incluso después de crear la página que faltaba.
Parameters
- $ruta : string
-
: ruta declarada
Return values
int —id de página, 0 si no existe