Membuat Pengecekan Terhadap Role

Penambahan Kode pada halaman login

<?php require __DIR__ . '/../includes/config.php'; ?>
<!DOCTYPE html>
<html lang="en">
    <head>
        <title>My Project</title>
        <link href="/assets/vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
        <link href="/assets/css/style.css" rel="stylesheet">
    </head>
    <body class="d-flex align-items-center py-4">
        
        <main class="form-signin w-50 m-auto">
            <div class="container">
                <div class="d-flex jusify-content-center">
                    <img class="mb-4 mx-auto text-center" src="/assets/img/kitakale-vertikal-logo.png" alt="" width="200">
                </div>
                <div class="card p-4">
                    <form action="" method="post">
                        <h1 class="h3 mb-3 fw-normal">Silahkan Login!</h1>

                        <div class="form-floating mb-3">
                            <input type="email" name="email" class="form-control" id="floatingInput" placeholder="[email protected]">
                            <label for="floatingInput">Email address</label>
                        </div>
                        <div class="form-floating mb-3">
                            <input type="password" name="password" class="form-control" id="floatingPassword" placeholder="Password">
                            <label for="floatingPassword">Password</label>
                        </div>
                        <button class="btn btn-primary w-100 py-2" type="submit">Sign in</button>
                        <p class="mt-5 mb-3 text-body-secondary text-center">© 2024 - copyright of wahyu</p>
                    </form>
                </div>
            </div>
        </main>

        <?php

            session_start();

            if ($_SERVER["REQUEST_METHOD"] == "POST") {
                $email = $_POST['email'];
                $password = $_POST['password'];

                $sql = "SELECT * FROM user WHERE Email = :email";
                $stmt = $pdo->prepare($sql);
                $stmt->bindParam(':email', $email);
                $stmt->execute();
                
                $user = $stmt->fetch(PDO::FETCH_ASSOC);
                
                if ($user && password_verify($password, $user['Password'])) {
                    $_SESSION['UserID'] = $user['UserID'];
                    $_SESSION['Username'] = $user['Username'];
                    $_SESSION['UserRole'] = $user['Role'];
                    $_SESSION['UserEmail'] = $user['Email'];
                    $_SESSION['UserNamaLengkap'] = $user['NamaLengkap'];
                    echo "<script>alert('Berhasil masuk!'); window.location.replace('/index.php');</script>";
                    // Redirect to the dashboard or home page
                } else {
                    echo "<script>alert('Invalid email or password.')</script>";
                }
            }
        ?>

    </body>
</html>

Membuat Pembagian Role

<?php
    session_start();

    // Cek apakah pengguna sudah login
    $is_logged_in = isset($_SESSION['UserID']);

    // Jika belum login, arahkan ke halaman login
    if (!$is_logged_in) {
        header('Location: /auth/login.php');
        exit(); // Pastikan script berhenti dieksekusi setelah pengalihan
    }

    $currentPage = basename($_SERVER['PHP_SELF']);
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <title>My Project</title>
    <link href="/assets/vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
    <link href="/assets/css/style.css" rel="stylesheet">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.6.0/css/all.min.css" integrity="sha512-Kc323vGBEqzTmouAECnVceyQqyqdsSiqLQISBL29aUW4U/M7pSPA/gEUZQqv1cwx4OnYxTxve5UMg5GT6L4JJg==" crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
<body>
    <nav class="navbar bg-dark fixed-top navbar-expand-lg bg-body-tertiary sticky-md-top" data-bs-theme="dark">
        <div class="container"> 
            <a class="navbar-brand" href="#">
                    <img src="" width="100" alt="">
            </a>
            <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
                <span class="navbar-toggler-icon"></span>
            </button>
            <div class="collapse navbar-collapse" id="navbarText">
                <ul class="navbar-nav me-auto mb-2 mb-lg-0">
                    <li class="nav-item">
                        <a class="nav-link <?= ($currentPage == 'index.php') ? 'active' : ''; ?>" aria-current="page" href="/index.php"><i class="fa-solid fa-house-chimney"></i>Home</a>
                    </li>
                    <?php if ($_SESSION['UserRole'] === 'administrator') : ?>
                    <li class="nav-item">
                        <a class="nav-link" href="/views/data-pengguna">Data Pengguna</a>
                    </li>
                    <?php endif; ?>
                    <?php if ($_SESSION['UserRole'] === 'administrator' || $_SESSION['UserRole'] === 'petugas') : ?>
                    <li class="nav-item">
                        <a class="nav-link" href="/views/data-kategori-buku/index.php">Data Kategori</a>
                    </li>
                    <?php endif; ?>
                    <li class="nav-item">
                        <a class="nav-link" href="/views/data-buku/index.php">Data Buku</a>
                    </li>
                    <?php if ($_SESSION['UserRole'] === 'administrator' || $_SESSION['UserRole'] === 'peminjam') : ?>
                    <li class="nav-item">
                        <a class="nav-link" href="#">Data Peminjam</a>
                    </li>
                    <?php endif; ?>
                    <?php if ($_SESSION['UserRole'] === 'administrator' || $_SESSION['UserRole'] === 'petugas') : ?>
                    <li class="nav-item">
                        <a class="nav-link" href="#">Generate Laporan</a>
                    </li>
                    <?php endif; ?>
                </ul>
                <div class="navbar-text">
                    <a class="nav-link" href="/auth/logout.php">Sign Out</a>
                </div>
            </div>
        </div>
    </nav>

    <main>
        <div class="container mt-5">

Last updated