<?php
$page = 'config';
$pageTitle = 'Antara — Configuración de acceso';
require __DIR__ . '/../_layout.php';

if (!$user) {
    echo '<div class="notice">Inicia sesión con una cuenta <strong>super_admin</strong> (formulario en la barra lateral) para ver y modificar la configuración de acceso, tiempo de inactividad de sesión, WebAuthn y bloqueos.</div>';
    require __DIR__ . '/../_layout_footer.php';
    exit;
}

if ($user['role'] !== AntaraStore::ROLE_SUPER) {
    echo '<div class="notice">Solo el rol <strong>super_admin</strong> puede ver y modificar esta sección.</div>';
    require __DIR__ . '/../_layout_footer.php';
    exit;
}
?>
      <div class="admin-header">
        <h1>Configuración de acceso</h1>
      </div>

      <div id="config-page" class="config-grid">
        <div class="config-row">
          <label class="switch">
            <input type="checkbox" id="cfg-login_required" <?php echo !empty($cfg['login_required']) ? 'checked' : ''; ?>>
            <span></span>
          </label>
          <div class="copy">
            <strong>Requerir login para usar el sistema</strong>
            <span>Si está activo, el guard global obliga a iniciar sesión antes de entrar a la app principal.
              Si está apagado, la app es accesible sin autenticación.</span>
          </div>
        </div>

        <div class="config-row">
          <label class="switch">
            <input type="checkbox" id="cfg-allow_user_registration" <?php echo !empty($cfg['allow_user_registration']) ? 'checked' : ''; ?>>
            <span></span>
          </label>
          <div class="copy">
            <strong>Permitir creación de nuevos usuarios</strong>
            <span>Habilita el wizard de registro y permite que las personas creen su propia cuenta. Si está apagado,
              el wizard se oculta y los intentos devuelven el aviso correspondiente.</span>
          </div>
        </div>

        <div class="config-row">
          <label class="switch">
            <input type="checkbox" id="cfg-allow_webauthn" <?php echo !empty($cfg['allow_webauthn']) ? 'checked' : ''; ?>>
            <span></span>
          </label>
          <div class="copy">
            <strong>Permitir acceso con huella / Passkey</strong>
            <span>Activa el botón biométrico (WebAuthn) en el login y en el wizard. Cuando está apagado, solo se
              acepta usuario y contraseña.</span>
          </div>
        </div>

        <div class="config-row">
          <label class="switch">
            <input type="checkbox" id="cfg-allow_password_login" <?php echo !empty($cfg['allow_password_login']) ? 'checked' : ''; ?>>
            <span></span>
          </label>
          <div class="copy">
            <strong>Permitir acceso por contraseña</strong>
            <span>Si lo desactivas, solo los usuarios con passkey podrán entrar.</span>
          </div>
        </div>

        <div class="config-row is-num">
          <div class="copy">
            <strong>Tiempo de inactividad antes de cerrar sesión</strong>
            <span>En minutos. Si hay un usuario con sesión iniciada, tras este tiempo sin actividad en el escritorio o en el panel admin se invalida la sesión y, si el login global está activo, se redirige al acceso.</span>
          </div>
          <div>
            <label for="cfg-session_timeout_minutes">Minutos</label>
            <input type="number" min="5" max="1440" id="cfg-session_timeout_minutes" value="<?php echo (int)$cfg['session_timeout_minutes']; ?>">
          </div>
        </div>

        <div class="config-row is-num">
          <div class="copy">
            <strong>Intentos máximos antes de bloquear</strong>
            <span>Número de intentos fallidos consecutivos por (IP + usuario) antes de aplicar lockout.</span>
          </div>
          <div>
            <label for="cfg-max_failed_attempts">Intentos</label>
            <input type="number" min="1" max="100" id="cfg-max_failed_attempts" value="<?php echo (int)$cfg['max_failed_attempts']; ?>">
          </div>
        </div>

        <div class="config-row is-num">
          <div class="copy">
            <strong>Duración del bloqueo</strong>
            <span>En minutos. Cuánto tiempo se bloquea la cuenta tras alcanzar el límite de intentos.</span>
          </div>
          <div>
            <label for="cfg-lockout_minutes">Minutos</label>
            <input type="number" min="1" max="1440" id="cfg-lockout_minutes" value="<?php echo (int)$cfg['lockout_minutes']; ?>">
          </div>
        </div>

        <div class="config-row is-num">
          <div class="copy">
            <strong>Nombre del Relying Party (WebAuthn)</strong>
            <span>Aparece como nombre del sitio en el diálogo de huella/passkey del navegador.</span>
          </div>
          <div>
            <label for="cfg-rp_name">Nombre</label>
            <input type="text" id="cfg-rp_name" value="<?php echo htmlspecialchars($cfg['rp_name'] ?? 'FLEXIA', ENT_QUOTES); ?>" maxlength="64" style="width:200px;">
          </div>
        </div>

        <div class="config-row is-num">
          <div class="copy">
            <strong>Relying Party ID (dominio WebAuthn)</strong>
            <span>Debe coincidir con el host del sitio (sin puerto). Déjalo vacío para usar automáticamente el host actual (<code><?php echo htmlspecialchars($_SERVER['HTTP_HOST'] ?? '', ENT_QUOTES); ?></code>).</span>
          </div>
          <div>
            <label for="cfg-rp_id">rp_id</label>
            <input type="text" id="cfg-rp_id" value="<?php echo htmlspecialchars((string)($cfg['rp_id'] ?? ''), ENT_QUOTES); ?>" maxlength="253" placeholder="(automático)" style="width:220px;" autocomplete="off">
          </div>
        </div>
      </div>

      <section class="config-branding" id="config-branding">
        <h2 style="margin:0 0 .5rem;font-size:1rem">Logo de la empresa</h2>
        <p class="muted" style="margin:0 0 .75rem;font-size:.85rem">Imagen, GIF o vídeo con el mismo editor que en el instalador. Se muestra en el panel de accesos y en los créditos del escritorio.</p>
        <div class="logo-box">
          <div class="logo-selected-preview config-branding__preview" id="cfgClientLogoPreview" aria-live="polite">
            <span class="muted logo-selected-preview__caption">Vista previa</span>
            <div class="install-logo-media-wrap" data-install-media-wrap>
              <img data-antara-profile-img alt="" hidden />
              <span data-antara-profile-ph aria-hidden="true">L</span>
            </div>
          </div>
          <input type="file" id="cfg-client-logo-file" class="install-file-input" accept="image/png,image/jpeg,image/webp,image/gif,video/mp4,video/webm">
          <input type="hidden" id="cfg-client-logo-source" value="original">
          <div style="display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.65rem">
            <button type="button" class="btn" id="cfg-client-logo-clear">Quitar logo</button>
          </div>
        </div>
        <p class="feedback" id="cfg-logo-feedback" style="margin-top:.5rem"></p>
      </section>

      <div class="config-actions">
        <button class="btn btn-primary" id="cfg-save">Guardar configuración</button>
        <span class="feedback" id="cfg-feedback"></span>
      </div>

<?php require __DIR__ . '/../_layout_footer.php'; ?>
