Add authentication, roles, dashboard and access control

This commit is contained in:
SatryaIrvannurYudha
2026-06-06 22:02:14 +07:00
parent 02ec3dab8a
commit 15c5ae63d7
17 changed files with 612 additions and 17 deletions
+58
View File
@@ -0,0 +1,58 @@
<?php
/**
* auth.php — Middleware Autentikasi & Otorisasi
* Include file ini di setiap halaman yang memerlukan login.
*/
session_start();
// Redirect ke login jika belum login
if (!isset($_SESSION['user_id'])) {
header("Location: login.php");
exit;
}
/**
* Cek apakah user adalah Admin Pemerintah
*/
function isAdminPemerintah() {
return isset($_SESSION['role']) && $_SESSION['role'] === 'admin_pemerintah';
}
/**
* Cek apakah user adalah Admin Rumah Ibadah
*/
function isAdminIbadah() {
return isset($_SESSION['role']) && $_SESSION['role'] === 'admin_ibadah';
}
/**
* Ambil ID rumah ibadah milik user (untuk admin_ibadah)
*/
function getUserIbadahId() {
return isset($_SESSION['id_rumah_ibadah']) ? (int)$_SESSION['id_rumah_ibadah'] : 0;
}
/**
* Ambil nama user yang sedang login
*/
function getUserNama() {
return isset($_SESSION['nama']) ? $_SESSION['nama'] : 'User';
}
/**
* Ambil role user yang sedang login
*/
function getUserRole() {
return isset($_SESSION['role']) ? $_SESSION['role'] : '';
}
/**
* Require role tertentu, redirect ke dashboard jika tidak sesuai
*/
function requireRole($role) {
if (!isset($_SESSION['role']) || $_SESSION['role'] !== $role) {
header("Location: dashboard.php");
exit;
}
}
?>