<?php
require_once __DIR__ . '/security.php';
// admin/login.php (Controller for Login Modal)

ua_session_start();

require_once __DIR__ . '/auth.php';
require_once __DIR__ . '/security_alerts_lib.php';
require_once __DIR__ . '/db_bootstrap.php';
ensure_db(true);

$defaultNext = function_exists('ua_install_home_page') ? ua_install_home_page() : 'dashboard.php';
$next = $_POST['next'] ?? ($_GET['next'] ?? $defaultNext);
if ($next === '' || strpos($next, '://') !== false) $next = $defaultNext;
if (function_exists('ua_is_agent_install') && ua_is_agent_install() && basename((string)$next) === 'dashboard.php') $next = $defaultNext;

// If already logged in, go next
$logged = !empty($_SESSION['admin_id']) || !empty($_SESSION['admin_user_id']) || !empty($_SESSION['admin_user']);
if ($logged) {
  if (function_exists('ua_install_link_required') && ua_install_link_required() && function_exists('ua_install_link_approved') && !ua_install_link_approved()) {
    header("Location: install_link.php");
    exit;
  }
  header("Location: ".$next);
  exit;
}

if (($_SERVER['REQUEST_METHOD'] ?? '') !== 'POST') {
  header("Location: index.php?login=1&next=".urlencode($next));
  exit;
}

if (function_exists('ua_csrf_verify') && !ua_csrf_verify()) {
  $connForCsrf = $GLOBALS['conn'] ?? null;
  if ($connForCsrf instanceof mysqli) {
    if (function_exists('ua_security_record_login_attempt')) ua_security_record_login_attempt($connForCsrf, (string)($_POST['user'] ?? ''), false, 'csrf_failed');
    if (function_exists('ua_security_record_failed_login')) ua_security_record_failed_login($connForCsrf, (string)($_POST['user'] ?? ''), 'csrf_failed');
  }
  $_SESSION['ua_login_err'] = 'انتهت صلاحية نموذج الدخول. أعد المحاولة.';
  header("Location: index.php?login=1&next=".urlencode($next));
  exit;
}

$user = trim($_POST['user'] ?? '');
$pass = (string)($_POST['pass'] ?? '');

if ($user === '' || $pass === '') {
  $connForEmpty = $GLOBALS['conn'] ?? null;
  if ($connForEmpty instanceof mysqli && function_exists('ua_security_record_login_attempt')) {
    ua_security_record_login_attempt($connForEmpty, $user, false, 'empty_credentials');
  }
  $_SESSION['ua_login_err'] = 'الرجاء إدخال اسم المستخدم وكلمة المرور.';
  header("Location: index.php?login=1&next=".urlencode($next));
  exit;
}

$conn = $GLOBALS['conn'] ?? null;
if (!($conn instanceof mysqli)) {
  $_SESSION['ua_login_err'] = 'خطأ: اتصال قاعدة البيانات غير جاهز.';
  header("Location: index.php?login=1&next=".urlencode($next));
  exit;
}

if ((function_exists('ua_login_rate_limited') && ua_login_rate_limited()) || (function_exists('ua_security_db_rate_limited') && ua_security_db_rate_limited($conn, $user))) {
  if (function_exists('ua_security_record_login_attempt')) {
    ua_security_record_login_attempt($conn, $user, false, 'rate_limited');
  }
  if (function_exists('ua_security_record_failed_login')) {
    ua_security_record_failed_login($conn, $user, 'rate_limited');
  }
  $_SESSION['ua_login_err'] = 'تم تجاوز عدد محاولات الدخول. الرجاء المحاولة بعد دقائق.';
  header("Location: index.php?login=1&next=".urlencode($next));
  exit;
}

if (login_admin($conn, $user, $pass)) {
  if (function_exists('ua_login_rate_limit_ok')) ua_login_rate_limit_ok();
  if (function_exists('ua_security_record_login_attempt')) {
    ua_security_record_login_attempt($conn, $user, true, 'ok');
  }
  if (function_exists('ua_install_link_required') && ua_install_link_required() && function_exists('ua_install_link_approved') && !ua_install_link_approved()) {
    header("Location: install_link.php");
    exit;
  }
  header("Location: ".$next);
  exit;
}

if (function_exists('ua_login_rate_limit_fail')) ua_login_rate_limit_fail();
if (function_exists('ua_security_record_login_attempt')) {
  ua_security_record_login_attempt($conn, $user, false, 'invalid_credentials');
}
if (function_exists('ua_security_record_failed_login')) {
  ua_security_record_failed_login($conn, $user, 'invalid_credentials');
}

$_SESSION['ua_login_err'] = 'بيانات الدخول غير صحيحة.';
header("Location: index.php?login=1&next=".urlencode($next));
exit;
