tieneAcceso() || !$objSesion->puedeEditar()){ header("Location: ../puestos.php?error=3"); exit(); } unset($objValida); if(!isset($_POST["permisosArr"]) || !isset($_POST["id"], $_POST["sist"])){ header("Location: ".$pag."?error=0"); exit(); } $permisosArr = $_POST["permisosArr"]; if(isset($_POST["editarArr"])) $editarArr = $_POST["editarArr"]; else $editarArr = array(); $puesto = filter_input(INPUT_POST, "id", FILTER_SANITIZE_NUMBER_INT);//limpia texto $sist = filter_input(INPUT_POST, "sist", FILTER_SANITIZE_NUMBER_INT);//limpia texto //Imprime valores recibidos /*foreach($permisosArr as $permiso){ if(in_array($permiso, $editarArr)){//puede editar echo "Select * from fi_permisopuesto($puesto, $permiso, true)
"; }else{ echo "Select * from fi_permisopuesto($puesto, $permiso, false)
"; } } exit(); */ try { $pdo->beginTransaction(); //borra sus permisos $stmt = $pdo->prepare('Select * from fd_permisopuesto(:puesto, :sist)'); $stmt->bindParam(":puesto", $puesto); $stmt->bindParam(":sist", $sist); if(!$stmt->execute()){ $pdo->rollBack(); //print_r($stmt->errorInfo()); header("Location:".$pag."?id=".$puesto."&error=1"); exit(); } $stmt->closeCursor(); /* TODO * Si es admnistrador SGI no hace nada */ foreach($permisosArr as $permiso){ if(in_array($permiso, $editarArr)){//puede editar $stmt = $pdo->prepare("Select * from fi_permisopuesto(:puesto, :permiso, true)"); }else{ $stmt = $pdo->prepare("Select * from fi_permisopuesto(:puesto, :permiso, false)"); } $stmt->bindParam(":puesto", $puesto); $stmt->bindParam(":permiso", $permiso); if(!$stmt->execute()){ $pdo->rollBack(); //echo "ERROR ($tmp[0], $tmp[1], ..)
"; print_r($stmt->errorInfo()); //header("Location:".$pag."?id=".$id."&error=2"); exit(); } $stmt->closeCursor(); } $stmt = null; /*$log = new LogActividad(); $desc_log = "Actualiza materia ID[".$id."] Nombre[".$desc."] Clave[".$clave."] Area[".$area."] Plan[".$plan."] Semestre[".$sem."] Horas de clase[".$horas_clase."] Créditos[".$creditos."]"; $log->appendLog($_SESSION["usuario_id"], $_SESSION["usuario_nombre"]." ".$_SESSION["usuario_apellidos"], $desc_log); */ $pdo->commit(); header("Location:".$pag."?id=".$puesto."&ok=0"); }catch(PDOException $e) { $pdo->rollBack(); header("Location:".$pag."?id=".$puesto."&error=2"); } ?>