/** * * @param string $login * @param string $pwd * @return DTO del usuario asociado a las credenciales si estas son validas, null en caso contrario */ public static function getUserDoingLogin($login, $pwd) { $usuarioDTO = NULL; try { $query = "SELECT u.id, u.nombre, u.apellido, u.correo, u.tiempo_sesion, u.clave, u.active, u.registros_por_pagina " . "FROM usuarios u " . "WHERE u.login='******' " . "AND u.clave=MD5('" . $pwd . "') "; $arrayResult = DBUtil::executeSelect($query); if (count($arrayResult) > 0) { //credenciales validas $row = $arrayResult[0]; $usuarioDTO = new UsuarioDTO($row["id"], $row["nombre"], $row["apellido"], $login, $row["clave"], $row["correo"], $row["tiempo_sesion"], $row["active"], $row["registros_por_pagina"]); $moduloDAO = new ModuloDAO(); $usuarioDTO->setModulesAllowed($moduloDAO->getModulosXUser($row["id"])); } } catch (Exception $e) { die("Error verificando login"); } return $usuarioDTO; }
//eliminamos los registros previos de permisos para actualizar $query = "DELETE FROM usuario_modulo where id_usuario=" . $_POST["idUsuario"]; BitacoraDAO::registrarComentario("Permisos borrados al usuario [" . $_POST["idUsuario"] . "]"); DBUtil::executeQuery($query); //recorremos el arreglo POST para almacenar los nuevos permisos $permisos = $_POST["permiso"]; foreach ($permisos as $arrayPermisoModulo) { foreach ($arrayPermisoModulo as $keyPermisoModulo => $valuePermisoModulo) { if ($valuePermisoModulo == 1) { //insertamos el permiso al modulo $query = "INSERT into usuario_modulo (id_usuario, id_modulo)" . " VALUES(" . $_POST["idUsuario"] . "," . $keyPermisoModulo . ")"; DBUtil::executeQuery($query); BitacoraDAO::registrarComentario("Asignado permiso al modulo [" . $keyPermisoModulo . "] al usuario [" . $_POST["idUsuario"] . "]"); } } } $_SESSION[Constants::$KEY_USER_ID] = $_POST["idUsuario"]; $_SESSION[Constants::$KEY_MESSAGE_OPERATION] = "Su operación fue realizada"; //si el id del usuario al que se le estan cambiando los permisos //es el mismo que esta actualmente en session //debemos actualizar los permisos del mismo en la sesion $userDTO = $_SESSION[Constants::$KEY_USUARIO_DTO]; if ($userDTO->getId() == $_POST["idUsuario"]) { $moduloDAO = new ModuloDAO(); $userDTO->setModulesAllowed($moduloDAO->getModulosXUser($_POST["idUsuario"])); } } else { //acceso no permitido a esta pagina BitacoraDAO::registrarComentario("Peticion de guardado de permisos no enviada de la manera esperada"); } header("Location: ../permisos.php");