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;
    }