roles_update.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  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 = "../roles.php";
  19. //--- Objeto para validar usuario. El id de usuario lo lee desde sesión
  20. $objSesion = new ValidaSesion($pdo, 31, APSA);
  21. if(!$objSesion->tieneAcceso() || !$objSesion->puedeEditar()){
  22. header("Location: ".$pag."?error=3");
  23. exit();
  24. }
  25. unset($objValida);
  26. if(!isset($_POST["permisosArr"]) || !isset($_POST["tipo"]) || !isset($_POST["sistema"])){
  27. header("Location: ".$pag."?error=0");
  28. exit();
  29. }
  30. $sist = $_POST["sistema"];
  31. $permisosArr = $_POST["permisosArr"];
  32. if(isset($_POST["editarArr"]))
  33. $editarArr = $_POST["editarArr"];
  34. else
  35. $editarArr = array();
  36. $tipoArr = explode("_", $_POST["tipo"]);
  37. //Imprime valores recibidos
  38. /*foreach($permisosArr as $permiso){
  39. $tmp = explode("_", $permiso);//submenu_tipoUs
  40. if(in_array($permiso, $editarArr)){//puede editar
  41. echo "Select * from fi_submenupermisos($tmp[0], $tmp[1], true)<br>";
  42. }else{
  43. echo "Select * from fi_submenupermisos($tmp[0], $tmp[1], false)<br>";
  44. }
  45. }
  46. exit();*/
  47. try {
  48. $pdo->beginTransaction();
  49. //Lee que tipos de usuario estan disponibles y borra sus permisos
  50. foreach($tipoArr as $tipo){
  51. $stmt = $pdo->prepare('Select * from fd_permisorol(:tipo, :sist)');
  52. $stmt->bindParam(":tipo", $tipo);
  53. $stmt->bindParam(":sist", $sist);
  54. //echo "fd_submenupermisos ($tipo)<br>";
  55. if(!$stmt->execute()){
  56. $pdo->rollBack();
  57. //print_r($stmt->errorInfo());
  58. header("Location:".$pag."?error=1");
  59. exit();
  60. }
  61. $rs = $stmt->fetch();
  62. $stmt->closeCursor();
  63. }
  64. foreach($permisosArr as $permiso){//recorre permisos ed visualizacion
  65. $tmp = explode("_", $permiso);//submenu_tipoUsr
  66. if(in_array($permiso, $editarArr)){//puede editar
  67. $stmt = $pdo->prepare('Select * from fi_permisorol(:sub, :tipo, true)');
  68. //echo "fi_submenupermisos ($tmp[0], $tmp[1], true)<br>";
  69. }else{
  70. $stmt = $pdo->prepare('Select * from fi_permisorol(:sub, :tipo, false)');
  71. //echo "fi_submenupermisos ($tmp[0], $tmp[1], false)<br>";
  72. }
  73. $stmt->bindParam(":sub", $tmp[0]);
  74. $stmt->bindParam(":tipo", $tmp[1]);
  75. if(!$stmt->execute()){
  76. $pdo->rollBack();
  77. echo "ERROR ($tmp[0], $tmp[1], ..)<br>";
  78. print_r($stmt->errorInfo());
  79. // header("Location:".$pag."?id=".$id."&error=2");
  80. exit();
  81. }
  82. $stmt->closeCursor();
  83. }
  84. $stmt = null;
  85. /*$log = new LogActividad();
  86. $desc_log = "Actualiza materia ID[".$id."] Nombre[".$desc."] Clave[".$clave."] Area[".$area."] Plan[".$plan."] Semestre[".$sem."] Horas de clase[".$horas_clase."] Créditos[".$creditos."]";
  87. $log->appendLog($_SESSION["usuario_id"], $_SESSION["usuario_nombre"]." ".$_SESSION["usuario_apellidos"], $desc_log);
  88. */
  89. $pdo->commit();
  90. header("Location:".$pag."?ok=0");
  91. }catch(PDOException $e) {
  92. $pdo->rollBack();
  93. header("Location:".$pag."?error=2");
  94. }
  95. ?>