The title says it all. How would I go about only letting the usertype "Admin" access certain pages in my PHP project? To summarize, I have a "usertype" section in my sql database that assigns either the User role (default) or the admin role (created by Admins in the user management section). The thing is, 1. In my side menu, I do not want regular users to see the admin section where it lists all the admin modules (user management, about us editing page) and 2, I do not want regular users to be able to access those admin pages. Can somebody please help me with this? I've been stuck on it for a while.
This is my side-menu code:
<div id="layoutSidenav">
<div id="layoutSidenav_nav">
<nav class="sb-sidenav accordion sb-sidenav-dark" id="sidenavAccordion">
<div class="sb-sidenav-menu">
<div class="nav">
<div class="sb-sidenav-menu-heading">Standard</div>
<a class="nav-link" href="dashboard.php">
<div class="sb-nav-link-icon"><i class="fas fa-tachometer-alt"></i></div>
Dashboard
</a>
<a class="nav-link" href="surf.php">
<div class="sb-nav-link-icon"><i class="fas fa-plane"></i></div>
Surf Freely
</a>
<a class="nav-link" href="chat.php">
<div class="sb-nav-link-icon"><i class="fas fa-comments"></i></div>
Chat
</a>
<div class="sb-sidenav-menu-heading">Admin</div>
<a class="nav-link" href="register.php">
<div class="sb-nav-link-icon"><i class="fas fa-users"></i></div>
User Management
</a>
</div>
</div>
<div class="sb-sidenav-footer">
<div class="small">Logged in as:</div>
<?php
echo $_SESSION['username'];
?>
</div>
</nav>
</div>
I do not want users with the usertype "User" accessing this part of the navbar:
<div class="sb-sidenav-menu-heading">Admin</div>
<a class="nav-link" href="register.php">
<div class="sb-nav-link-icon"><i class="fas fa-users"></i></div>
User Management
</a>
Here is my security file (the file that prevents logged in users from accessing certain pages):
<?php
session_start();
include('includes/dbconfig.php');
if(!$_SESSION['username']) {
header('Location: login.php');
}
?>
Login code:
if (isset($_POST['login_btn'])) {
$email_login = $_POST['email'];
$password_login = $_POST['password'];
$query = "SELECT * FROM register WHERE email='$email_login' AND password='$password_login' LIMIT 1";
$query_run = mysqli_query($connection, $query);
$usertypes = mysqli_fetch_array($query_run);
if ($usertypes['usertype'] == "Admin") {
$_SESSION['username'] = $email_login;
header('Location: dashboard.php');
} else if ($usertypes['usertype'] == "User") {
$_SESSION['username'] = $email_login;
header('Location: dashboard.php');
} else {
$_SESSION['status'] = "Email / Password is Invalid";
header('Location: login.php');
}
}