59 lines
1.3 KiB
PHP
59 lines
1.3 KiB
PHP
<?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;
|
|
}
|
|
}
|
|
?>
|