permisospuesto_update.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. <?php
  2. /*
  3. * Inserta los datos de una nueva carrera
  4. * Recibe:
  5. * permisosArr[]
  6. * editarArr[]
  7. * tipo string de tipos
  8. *
  9. * Error:
  10. * 0 - No se recibieron los datos
  11. * 1 - Error de base de datos
  12. * Success:
  13. */
  14. require_once("../../include/constantes.php");
  15. require_once("../../include/bd_pdo.php");
  16. require_once("../../classes/ValidaSesion.php");
  17. require_once("../classes/LogActividad.php");//die on error
  18. $pag = "../permisos_puesto.php";
  19. //--- Objeto para validar usuario. El id de usuario lo lee desde sesión
  20. $objSesion = new ValidaSesion($pdo, 87, APSA);
  21. if(!$objSesion->tieneAcceso() || !$objSesion->puedeEditar()){
  22. header("Location: ../puestos.php?error=3");
  23. exit();
  24. }
  25. unset($objValida);
  26. if(!isset($_POST["permisosArr"]) || !isset($_POST["id"], $_POST["sist"])){
  27. header("Location: ".$pag."?error=0");
  28. exit();
  29. }
  30. $permisosArr = $_POST["permisosArr"];
  31. if(isset($_POST["editarArr"]))
  32. $editarArr = $_POST["editarArr"];
  33. else
  34. $editarArr = array();
  35. $puesto = filter_input(INPUT_POST, "id", FILTER_SANITIZE_NUMBER_INT);//limpia texto
  36. $sist = filter_input(INPUT_POST, "sist", FILTER_SANITIZE_NUMBER_INT);//limpia texto
  37. //Imprime valores recibidos
  38. /*foreach($permisosArr as $permiso){
  39. if(in_array($permiso, $editarArr)){//puede editar
  40. echo "Select * from fi_permisopuesto($puesto, $permiso, true)<br>";
  41. }else{
  42. echo "Select * from fi_permisopuesto($puesto, $permiso, false)<br>";
  43. }
  44. }
  45. exit();
  46. */
  47. try {
  48. $pdo->beginTransaction();
  49. //borra sus permisos
  50. $stmt = $pdo->prepare('Select * from fd_permisopuesto(:puesto, :sist)');
  51. $stmt->bindParam(":puesto", $puesto);
  52. $stmt->bindParam(":sist", $sist);
  53. if(!$stmt->execute()){
  54. $pdo->rollBack();
  55. //print_r($stmt->errorInfo());
  56. header("Location:".$pag."?id=".$puesto."&error=1");
  57. exit();
  58. }
  59. $stmt->closeCursor();
  60. /* TODO
  61. * Si es admnistrador SGI no hace nada
  62. */
  63. foreach($permisosArr as $permiso){
  64. if(in_array($permiso, $editarArr)){//puede editar
  65. $stmt = $pdo->prepare("Select * from fi_permisopuesto(:puesto, :permiso, true)");
  66. }else{
  67. $stmt = $pdo->prepare("Select * from fi_permisopuesto(:puesto, :permiso, false)");
  68. }
  69. $stmt->bindParam(":puesto", $puesto);
  70. $stmt->bindParam(":permiso", $permiso);
  71. if(!$stmt->execute()){
  72. $pdo->rollBack();
  73. //echo "ERROR ($tmp[0], $tmp[1], ..)<br>";
  74. print_r($stmt->errorInfo());
  75. //header("Location:".$pag."?id=".$id."&error=2");
  76. exit();
  77. }
  78. $stmt->closeCursor();
  79. }
  80. $stmt = null;
  81. /*$log = new LogActividad();
  82. $desc_log = "Actualiza materia ID[".$id."] Nombre[".$desc."] Clave[".$clave."] Area[".$area."] Plan[".$plan."] Semestre[".$sem."] Horas de clase[".$horas_clase."] Créditos[".$creditos."]";
  83. $log->appendLog($_SESSION["usuario_id"], $_SESSION["usuario_nombre"]." ".$_SESSION["usuario_apellidos"], $desc_log);
  84. */
  85. $pdo->commit();
  86. header("Location:".$pag."?id=".$puesto."&ok=0");
  87. }catch(PDOException $e) {
  88. $pdo->rollBack();
  89. header("Location:".$pag."?id=".$puesto."&error=2");
  90. }
  91. ?>