Test specific permissions with your current role:
Manage other users (Admin/Moderator only):
dbConnection(); $sql = "SELECT user_id, username, email, role, status, created_at, last_login FROM db_users ORDER BY created_at DESC LIMIT 10"; $result = $db->Execute($sql); ?>| User | Role | Status | Last Login | Actions |
|---|---|---|---|---|
|
= htmlspecialchars($result->fields['username']) ?> = htmlspecialchars($result->fields['email']) ?> |
= strtoupper($result->fields['role']) ?> | = strtoupper($result->fields['status']) ?> | = $result->fields['last_login'] ? date('Y-m-d H:i', strtotime($result->fields['last_login'])) : 'Never' ?> | fields['user_id'] != $currentUser['user_id']): ?> You |
You need to be logged in to see RBAC features. Login here
EasyStream uses a hierarchical role system where higher roles inherit permissions from lower roles:
| Role | Level | Key Permissions | Description |
|---|---|---|---|
| GUEST | 0 | content.view, comment.view | Unregistered users - can only view content |
| MEMBER | 10 | content.create, comment.create, upload.basic | Registered users - can create and interact |
| VERIFIED | 20 | content.publish, upload.document | Email verified users - can publish content |
| PREMIUM | 30 | upload.large_files, feature.beta | Premium subscribers - enhanced features |
| MODERATOR | 40 | content.moderate, comment.moderate | Community moderators - can moderate content |
| ADMIN | 50 | admin.dashboard, user.manage, user.ban | Site administrators - full management access |
| SUPERADMIN | 60 | admin.system, ALL PERMISSIONS | Super administrators - complete system access |
The RBAC system includes middleware for protecting routes and API endpoints:
// Require authentication
$middleware->requireAuth();
// Require specific role
$middleware->requireRole('admin');
// Require specific permission
$middleware->requirePermission('content.moderate');
// Require multiple permissions (any)
$middleware->requirePermission(['content.edit', 'content.moderate']);
// Require content ownership
$middleware->requireContentOwnership($videoId, 'video');
// Chain multiple middleware
$middleware->requireAll([
['method' => 'requireAuth'],
['method' => 'requireRole', 'params' => ['verified']],
['method' => 'requirePermission', 'params' => ['content.create']]
]);
// API middleware
$middleware->requireAPI(true); // Require auth for API
// Admin dashboard
if (!$middleware->requireRole('admin')) {
exit; // Redirects to access denied
}
// Content creation
if (!$middleware->requirePermission('content.create')) {
exit; // Handles access denial
}
// User management
if (!$middleware->requirePermission('user.manage')) {
exit;
}