churchtube/includes/auth.php

49 lines
1.1 KiB
PHP

<?php
session_start();
function isLoggedIn() {
return isset($_SESSION['user_id']);
}
function isAdmin() {
return isset($_SESSION['user_role']) && $_SESSION['user_role'] === 'admin';
}
function isModerator() {
return isset($_SESSION['user_role']) && ($_SESSION['user_role'] === 'admin' || $_SESSION['user_role'] === 'moderator');
}
function isEditor() {
return isset($_SESSION['user_role']) && ($_SESSION['user_role'] === 'admin' || $_SESSION['user_role'] === 'editor');
}
function requireLogin() {
if (!isLoggedIn()) {
$prefix = file_exists('includes/auth.php') ? '' : '../';
header('Location: ' . $prefix . 'login.php');
exit;
}
}
function requireAdmin() {
requireLogin();
if (!isAdmin()) {
die("Unauthorized access. Admin privileges required.");
}
}
function requireModerator() {
requireLogin();
if (!isModerator()) {
die("Unauthorized access. Moderator privileges required.");
}
}
function requireEditor() {
requireLogin();
if (!isEditor()) {
die("Unauthorized access. Editor or Admin privileges required.");
}
}
?>