administrador.modelado.params_sql.valida_seguridad - gamboamartin/administrador GitHub Wiki
valida_seguridad
La función valida_seguridad es una función privada que valida la seguridad de las columnas extras de un modelo y verifica la existencia y validez de ciertas claves en la sesión del usuario. A continuación, se detalla su funcionamiento y componentes.
Signatura
private function valida_seguridad(array $modelo_columnas_extra): true|array
Parámetros
$modelo_columnas_extra (array): Un array que contiene las columnas extras del modelo que se van a validar.
Retorna
- true: Si la validación es exitosa.
- array: Si hay un error, retorna un array con el mensaje de error y los datos correspondientes.
Explicación Detallada
-
Validación de Claves en $modelo_columnas_extra:
-
- Se define un array $keys con las claves que se van a validar en $modelo_columnas_extra.
-
- Se utiliza la función valida_existencia_keys de la clase validacion para validar la existencia de las claves en $modelo_columnas_extra.
-
- Si hay un error en la validación (errores::$error), se retorna un error con un mensaje indicando el fallo al validar $modelo->columnas_extra.
-
Verificación de la Sesión del Usuario:
-
- Se verifica si la variable de sesión $_SESSION['usuario_id'] está definida.
-
- Si no está definida, se retorna un error con un mensaje indicando que la sesión no está definida y se marca como error final (es_final: true).
-
Validación de Claves en $_SESSION:
-
- Se define un array $keys con las claves que se van a validar en $_SESSION.
-
- Se utiliza la función valida_existencia_keys de la clase validacion para validar la existencia de las claves en $_SESSION.
-
- Si hay un error en la validación (errores::$error), se retorna un error con un mensaje indicando el fallo al validar $_SESSION.
-
Retorno Exitoso:
-
- Si todas las validaciones son exitosas, la función retorna true.
Ejemplos
// Simulación de una sesión de usuario
$_SESSION['usuario_id'] = 123;
// Datos de las columnas extras del modelo
$modelo_columnas_extra = array(
'usuario_permitido_id' => 456,
'otra_columna' => 'valor'
);
// Instancia de la clase que contiene la función valida_seguridad
$mi_clase = new MiClase();
$resultado = $mi_clase->valida_seguridad($modelo_columnas_extra);
if ($resultado === true) {
echo "Validación exitosa";
} else {
echo "Error: " . print_r($resultado, true);
}
Código de la Función
private function valida_seguridad(array $modelo_columnas_extra): true|array
{
$keys = array('usuario_permitido_id');
$valida = (new validacion())->valida_existencia_keys(keys: $keys,
registro: $modelo_columnas_extra,valida_vacio: false);
if(errores::$error){
return $this->error->error(mensaje: 'Error al validar $modelo->columnas_extra', data:$valida);
}
if(!isset($_SESSION['usuario_id'])){
return $this->error->error(mensaje: 'Error al validar $_SESSION no esta definida', data:array(),
es_final: true);
}
$keys = array('usuario_id');
$valida = (new validacion())->valida_existencia_keys(keys: $keys, registro: $_SESSION);
if(errores::$error){
return $this->error->error(mensaje: 'Error al validar $_SESSION', data:$valida);
}
return true;
}