UAS SIG Proyek WebGis

This commit is contained in:
L4zyL4mb
2026-06-10 21:46:56 +07:00
commit df18a7a99a
35 changed files with 8977 additions and 0 deletions
+30
View File
@@ -0,0 +1,30 @@
<?php
// includes/auth.php v2.0
// ============================================================
// Middleware Autentikasi berbasis PHP Session
// ============================================================
require_once __DIR__ . '/config.php';
session_start();
// ── Cek apakah user sudah login ───────────────────────────
function requireAuth(array $allowedRoles = []): array {
if (!isset($_SESSION['user_id'])) {
jsonResponse(['success' => false, 'error' => 'Unauthorized silakan login', 'redirect' => '/index.html'], 401);
}
$user = $_SESSION['user'];
if (!empty($allowedRoles) && !in_array($user['role'], $allowedRoles)) {
jsonResponse(['success' => false, 'error' => 'Akses ditolak untuk role: ' . $user['role']], 403);
}
return $user;
}
// ── Ambil user saat ini (null jika belum login) ───────────
function currentUser(): ?array {
return $_SESSION['user'] ?? null;
}
// ── Cek apakah sudah login (tanpa redirect) ───────────────
function isLoggedIn(): bool {
return isset($_SESSION['user_id']);
}