UAS SIG Proyek WebGis
This commit is contained in:
@@ -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']);
|
||||
}
|
||||
Reference in New Issue
Block a user