
<?php


if($_SESSION["tipo_usuario"] == "Vendedor"){

  echo '<script>

    window.location = "inicio";

  </script>';

  return;




}


// Cargar datos desde controladores
$item = null;
$valor = null;
$roles    = ControladorRol::ctrMostrarRol($item,$valor);       // id, nombre
$modulos  = ControladorModulo::ctrMostrarModulo($item,$valor); // id, nombre


// Rol seleccionado
$rolSeleccionado = isset($_GET['id_rol']) ? (int)$_GET['id_rol'] : null;


// Siempre inicializar setPermisos
$setPermisos = [];

if ($rolSeleccionado) {
    $item = "rol_id";
    $valor = $rolSeleccionado; // usa el valor dinámico de la URL
    $permisosActuales = ControladorPermiso::ctrMostrarPermiso($item,$valor);

    foreach ($permisosActuales as $p) {
        $setPermisos[$p['modulo_id'].'-'.$p['accion_id']] = $p['permiso_id'];
    }
}


?>

<div class="content-wrapper">
  <section class="content-header">
    <div class="container-fluid">
      <div class="row mb-2">
        <div class="col-sm-6">
          <h1 class="font-weight-bold text-dark">
            <i class="fas fa-user-lock mr-2"></i>Seguridad: Roles y Permisos
          </h1>
        </div>
        <div class="col-sm-6">
          <ol class="breadcrumb float-sm-right">
            <li class="breadcrumb-item"><a href="inicio">Inicio</a></li>
            <li class="breadcrumb-item active">Configuración de Seguridad</li>
          </ol>
        </div>
      </div>
    </div>
  </section>

  <section class="content">
    <div class="container-fluid">
      
      <div class="card card-outline card-primary shadow-sm">
        <div class="card-header">
          <h3 class="card-title text-primary font-weight-bold">
            <i class="fas fa-user-tag mr-1"></i> Seleccionar Perfil de Usuario
          </h3>
        </div>
        <div class="card-body">
          <form method="get" name="id_rol">
            <input type="hidden" name="ruta" value="rolypermisos">
            <div class="row justify-content-center">
              <div class="col-md-6">
                <div class="input-group">
                  <div class="input-group-prepend">
                    <span class="input-group-text bg-primary text-white"><i class="fas fa-users-cog"></i></span>
                  </div>
                  <select name="id_rol" id="id_rol" class="form-control form-control-lg select2" onchange="this.form.submit()" style="border-radius: 0 10px 10px 0;">
                    <option value="">-- Elige un rol para configurar --</option>
                    <?php foreach($roles as $r): ?>
                      <option value="<?= $r['id']; ?>" <?= ($rolSeleccionado == $r['id']) ? 'selected' : '' ?>>
                        <?= htmlspecialchars($r['nombre']); ?>
                      </option>
                    <?php endforeach; ?>
                  </select>
                </div>
              </div>
            </div>
          </form>
        </div>
      </div>

      <?php if ($rolSeleccionado): ?>
        <form role="form" method="post" id="formPermisos">
          <input type="hidden" name="id_rol" value="<?= $rolSeleccionado; ?>">

          <div class="row">
            <?php foreach($modulos as $m): ?>
              <div class="col-md-6 col-lg-4 d-flex align-items-stretch">
                <div class="card shadow-sm border-light mb-4 w-100">
                  <div class="card-header bg-light d-flex align-items-center justify-content-between py-2">
                    <span class="font-weight-bold text-secondary">
                      <i class="fas fa-folder-open mr-2 text-info"></i><?= htmlspecialchars($m['nombre']); ?>
                    </span>
                    <div class="btn-group">
                      <button type="button" class="btn btn-xs btn-outline-primary" onclick="toggleModulo('mod-<?= $m['id']; ?>', true)" title="Marcar todo">
                        <i class="fas fa-check-square"></i>
                      </button>
                      <button type="button" class="btn btn-xs btn-outline-secondary" onclick="toggleModulo('mod-<?= $m['id']; ?>', false)" title="Desmarcar todo">
                        <i class="fas fa-square"></i>
                      </button>
                    </div>
                  </div>

                  <div class="card-body py-3" id="mod-<?= $m['id']; ?>">
                    <div class="row">
                      <?php 
                        $accionesModulo = ControladorPermiso::ctrAccionesPorModulo($m['id']);
                        foreach($accionesModulo as $a): 
                          $key = $m['id'].'-'.$a['id'];
                          $checked = isset($setPermisos[$key]) ? 'checked' : '';
                          $permisoId = isset($setPermisos[$key]) ? $setPermisos[$key] : null;
                      ?>
                        <div class="col-12 mb-2">
                          <div class="custom-control custom-switch custom-switch-off-danger custom-switch-on-success">
                            <input type="checkbox" 
                                   class="custom-control-input" 
                                   id="sw-<?= $key ?>" 
                                   name="permisos[]" 
                                   value="<?= $permisoId ?? ($m['id'].'-'.$a['id']); ?>" <?= $checked; ?>>
                            <label class="custom-control-label font-weight-normal text-muted" for="sw-<?= $key ?>">
                              <?= htmlspecialchars($a['nombre']); ?>
                            </label>
                          </div>
                        </div>
                      <?php endforeach; ?>
                    </div>
                  </div>
                </div>
              </div>
            <?php endforeach; ?>
          </div>

          <div class="row mb-5">
            <div class="col-12 text-center">
              <div class="card card-body shadow border-0 bg-white d-inline-block px-5 py-3 rounded-pill">
                <button type="submit" class="btn btn-success btn-lg px-5 shadow-sm rounded-pill font-weight-bold">
                  <i class="fas fa-shield-alt mr-2"></i> ACTUALIZAR PERMISOS DEL ROL
                </button>
              </div>
            </div>
          </div>

        </form>
      <?php else: ?>
        <div class="alert alert-info shadow-sm border-0" style="border-radius: 15px;">
          <div class="d-flex align-items-center">
            <i class="fas fa-info-circle fa-2x mr-3"></i>
            <span>Por favor, selecciona un perfil de usuario arriba para comenzar a gestionar sus facultades dentro del sistema.</span>
          </div>
        </div>
      <?php endif; ?>

    </div>
  </section>
</div>

<script>
function toggleModulo(containerId, check) {
  const container = document.getElementById(containerId);
  if (!container) return;
  const inputs = container.querySelectorAll('input[type="checkbox"]');
  inputs.forEach(i => i.checked = check);
}

document.getElementById('formPermisos').addEventListener('submit', function(e) {
    e.preventDefault();

    const formData = new FormData(this);

    fetch('ajax/guardar_permisos.ajax.php', {
        method: 'POST',
        body: formData
    })
    .then(res => res.json())
    .then(data => {
        if (data.status === 'ok') {
            swal({
                type: "success",
                title: data.message,
                showConfirmButton: true,
                confirmButtonText: "Cerrar"
            });
        } else {
            swal({
                type: "error",
                title: data.message,
                showConfirmButton: true,
                confirmButtonText: "Cerrar"
            });
        }
    })
    .catch(err => {
        swal({
            type: "error",
            title: "Error de conexión",
            text: "No se pudo guardar los permisos",
            showConfirmButton: true,
            confirmButtonText: "Cerrar"
        });
    });
});



</script>



  <script>
      
      
      var elemento = document.getElementById("mantenimiento");
      elemento.className += " active";

      var elemento = document.getElementById("mante");
      elemento.className += " menu-open";

      var elemento = document.getElementById("rolypermisos");
      elemento.className += " active";
</script>

