Add authentication, roles, dashboard and access control
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
?>
|
||||
Reference in New Issue
Block a user