38474-vm/includes/auth.php
Flatlogic Bot 5e1b7e7c43 sadiq
2026-02-17 06:16:03 +00:00

52 lines
1.1 KiB
PHP

<?php
session_start();
require_once __DIR__ . '/../db/config.php';
function isLoggedIn() {
return isset($_SESSION['user_id']);
}
function isAdmin() {
return isLoggedIn() && (
$_SESSION['role'] === 'Admin' ||
$_SESSION['role'] === 'Super Admin' ||
$_SESSION['role'] === 'Manager'
);
}
function requireLogin() {
if (!isLoggedIn()) {
header('Location: /login.php');
exit;
}
}
function requireAdmin() {
requireLogin();
if (!isAdmin()) {
header('Location: /index.php');
exit;
}
}
function login($username, $password) {
$pdo = db();
$stmt = $pdo->prepare("SELECT * FROM users WHERE username = ? OR email = ?");
$stmt->execute([$username, $username]);
$user = $stmt->fetch();
if ($user && password_verify($password, $user['password'])) {
$_SESSION['user_id'] = $user['id'];
$_SESSION['username'] = $user['username'];
$_SESSION['role'] = $user['role'];
return true;
}
return false;
}
function logout() {
session_destroy();
header('Location: /login.php');
exit;
}