Admin na user wanahitaji dashboards tofauti ili:

Admin: kuona, kusimamia data zote, ku-edit au delete entries.

User: kuona data yao pekee, kufanya limited actions.

Kila dashboard ina features kulingana na role_level au role ya user.

โš™๏ธ 2. Database Setup (Kama ilivyokuwa kwenye Multi-Level User Access)
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
email VARCHAR(100) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL,
role_level INT DEFAULT 3, -- 1=Admin, 2=Manager, 3=User
is_verified TINYINT(1) DEFAULT 0,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);


Admin = 1, User = 3.

๐Ÿงฉ 3. Login Script (Kuhifadhi Session Data)
session_start();
$stmt = $pdo->prepare("SELECT * FROM users WHERE email=:email");
$stmt->execute(['email'=>$email]);
$user = $stmt->fetch(PDO::FETCH_ASSOC);

if($user && password_verify($password, $user['password'])){
if($user['is_verified'] == 0){
$error = "โŒ Please verify your email first!";
} else {
session_regenerate_id(true);
$_SESSION['user_id'] = $user['id'];
$_SESSION['username'] = $user['username'];
$_SESSION['role_level'] = $user['role_level'];

// Redirect based on role_level
if($user['role_level'] == 1){
header("Location: admin_dashboard.php");
} else {
header("Location: user_dashboard.php");
}
exit;
}
}


๐Ÿ’ก Maelezo:

Role determines which dashboard user accesses.

๐Ÿ“ 4. Admin Dashboard Example (admin_dashboard.php)
<?php
session_start();

// Only allow admin
if(!isset($_SESSION['role_level']) || $_SESSION['role_level'] != 1){
die("โŒ Access denied. Admins only.");
}
?>
<h1>Welcome Admin, <?php echo $_SESSION['username']; ?>!</h1>
<ul>
<li><a href="manage_users.php">Manage Users</a></li>
<li><a href="view_reports.php">View Reports</a></li>
<li><a href="settings.php">System Settings</a></li>
<li><a href="logout.php">Logout</a></li>
</ul>


Admin dashboard ina links za management features.

๐Ÿ“ 5. User Dashboard Example (user_dashboard.php)
<?php
session_start();

// Only allow normal users
if(!isset($_SESSION['role_level']) || $_SESSION['role_level'] > 2){
die("โŒ Access denied. Users only.");
}
?>
<h1>Welcome <?php echo $_SESSION['username']; ?>!</h1>
<ul>
<li><a href="view_profile.php">View Profile</a></li>
<li><a href="submit_request.php">Submit Request</a></li>
<li><a href="logout.php">Logout</a></li>
</ul>


User dashboard ina links za limited actions kulingana na role.

๐Ÿ”‘ 6. Vidokezo vya Usalama

Always check session role_level server-side.

Separate dashboards = clear separation of privileges.

Logout & session_destroy() on logout.

Optional: audit logs kwa admin actions.

โœ… 7. Hitimisho

Multi-dashboard system inarahisisha user experience na security.

Admin na user wanaaccess tofauti kulingana na role.

Best practice: server-side access checks, role-based redirects, minimal privileges.

๐Ÿ”— Tembelea:

๐Ÿ‘‰ https://www.faulink.com/

Kwa mafunzo zaidi ya PHP, user authentication, na dashboard development.