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");
}
?>