<?php
$authApp = 'userApp';
require __DIR__ . '/../../config/auth.php';
require __DIR__ . '/../../config/db2.php';
require_once __DIR__ . '/../../lib/helpers.php';

// Auto-poblar la tabla si está vacía
try {
    $count = (int)$pdo->query("SELECT COUNT(*) FROM mrbs_userApp")->fetchColumn();
    if ($count === 0) {
        $defaults = [
            ['autos',         1, 3, 7, 8, 9, 9],
            ['agenda',        1, 3, 7, 8, 9, 9],
            ['juicios',       1, 3, 7, 8, 9, 9],
            ['informes',      1, 3, 7, 8, 9, 9],
            ['litigantes',    1, 3, 7, 8, 9, 9],
            ['configuracion', 1, 3, 7, 8, 9, 9],
            ['usuarios',      1, 3, 7, 8, 9, 9],
            ['userApp',       1, 3, 7, 8, 9, 9],
        ];
        $ins = $pdo->prepare("INSERT INTO mrbs_userApp (aplicacion,acceder_aplicacion,ver,editar,agregar,borrar,otras_acciones) VALUES (?,?,?,?,?,?,?)");
        foreach ($defaults as $d) $ins->execute($d);
        // Recargar permisos en sesión
        $rows = $pdo->query("SELECT aplicacion, acceder_aplicacion, ver, editar, agregar, borrar, otras_acciones FROM mrbs_userApp")->fetchAll(PDO::FETCH_ASSOC);
        $ap = [];
        foreach ($rows as $row) { $a = $row['aplicacion']; unset($row['aplicacion']); $ap[$a] = $row; }
        $_SESSION['userApp'] = $ap;
    }
} catch (Throwable $e) {}

// Acción: eliminar
if (isset($_GET['eliminar'])) {
    if (!perm('userApp', 'borrar')) { http_response_code(403); exit('Sin permiso'); }
    try { $pdo->prepare("DELETE FROM mrbs_userApp WHERE id=?")->execute([(int)$_GET['eliminar']]); } catch (Throwable $e) {}
    header('Location: listarUserApp.php?ok=eliminado'); exit;
}

$ok  = $_GET['ok'] ?? '';
$err = '';

// Cargar filas
$apps = [];
try {
    $apps = $pdo->query("SELECT * FROM mrbs_userApp ORDER BY aplicacion")->fetchAll(PDO::FETCH_ASSOC);
} catch (Throwable $e) {
    $err = 'Error al leer mrbs_userApp: ' . $e->getMessage();
}

$labels = [
    'aplicacion'          => 'Aplicación',
    'acceder_aplicacion'  => 'Acceder',
    'ver'                 => 'Ver',
    'editar'              => 'Editar',
    'agregar'             => 'Agregar',
    'borrar'              => 'Borrar',
    'otras_acciones'      => 'Otras',
];

$paginaActual = 'configuracion';
require __DIR__ . '/../../config/menu.php';
?>
<div class="ph">
  <div>
    <h1>Permisos de Aplicación</h1>
    <div class="bc"><a href="<?=BASE_URL?>/index.php">Inicio</a> › <a href="<?=BASE_URL?>/public/configuracion/listarSalas.php">Configuración</a> › Permisos</div>
  </div>
  <?php if (perm('userApp','agregar')): ?>
  <a href="formUserApp.php" class="btn btn-s">+ Nueva aplicación</a>
  <?php endif; ?>
</div>

<?php if ($ok === '1'): ?><div class="msg msg-ok">Guardado correctamente.</div><?php endif; ?>
<?php if ($ok === 'eliminado'): ?><div class="msg msg-ok">Registro eliminado.</div><?php endif; ?>
<?php if ($err): ?><div class="msg msg-err"><?=htmlspecialchars($err)?></div><?php endif; ?>

<div class="card">
  <div class="sec">Niveles de acceso por aplicación</div>
  <p style="font-size:12px;color:#64748b;margin-bottom:12px">
    Cada valor indica el <strong>nivel mínimo de usuario</strong> requerido para esa acción.
    Escala: 0 = bloqueado, 1 = básico, 2 = editor, 9 = administrador.
    Los cambios se aplican al próximo inicio de sesión.
  </p>
  <div class="tw">
  <table>
    <thead><tr>
      <th>Aplicación</th>
      <th title="Nivel mínimo para acceder a la sección">Acceder</th>
      <th title="Ver registros">Ver</th>
      <th title="Editar registros existentes">Editar</th>
      <th title="Crear nuevos registros">Agregar</th>
      <th title="Eliminar registros">Borrar</th>
      <th title="Acciones especiales (exportar, importar, etc.)">Otras</th>
      <th>Acciones</th>
    </tr></thead>
    <tbody>
    <?php if (empty($apps)): ?>
      <tr><td colspan="8" style="text-align:center;color:#64748b">Sin registros.</td></tr>
    <?php endif; ?>
    <?php foreach ($apps as $row): ?>
    <tr>
      <td><strong><?=htmlspecialchars($row['aplicacion'])?></strong></td>
      <td style="text-align:center"><?=(int)$row['acceder_aplicacion']?></td>
      <td style="text-align:center"><?=(int)$row['ver']?></td>
      <td style="text-align:center"><?=(int)$row['editar']?></td>
      <td style="text-align:center"><?=(int)$row['agregar']?></td>
      <td style="text-align:center"><?=(int)$row['borrar']?></td>
      <td style="text-align:center"><?=(int)$row['otras_acciones']?></td>
      <td class="ac">
        <?php if (perm('userApp','editar')): ?>
        <a href="formUserApp.php?id=<?=$row['id']?>" class="btn btn-i btn-sm">Editar</a>
        <?php endif; ?>
        <?php if (perm('userApp','borrar')): ?>
        <a href="?eliminar=<?=$row['id']?>"
           class="btn btn-r btn-sm"
           onclick="return confirm('¿Eliminar la aplicación <?=htmlspecialchars(addslashes($row['aplicacion']))?>')">Eliminar</a>
        <?php endif; ?>
      </td>
    </tr>
    <?php endforeach; ?>
    </tbody>
  </table>
  </div>
  <p style="font-size:12px;color:#64748b;margin-top:8px"><?=count($apps)?> aplicación(es) registrada(s).</p>
</div>

<div class="card" style="background:#fefce8;border-color:#fde047">
  <div class="sec" style="color:#854d0e;border-color:#fde047">Nota sobre el inicio de sesión</div>
  <p style="font-size:13px;color:#713f12">
    Los permisos se cargan al iniciar sesión. Si modifica los niveles, los usuarios con sesión activa deben
    <strong>cerrar sesión y volver a ingresar</strong> para que los cambios surtan efecto.
  </p>
</div>
