首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

PHP 簡易 RBAC 權限控制實現思路(超管、管理員、普通用戶)

     編輯:程式設計綜合問答

數據表


users: id, username, password, role_id
roles: id, name (super_admin, admin, user)
permissions: id, name, route (如 'article.delete')
role_permissions: role_id, permission_id

中間件/檢查函數


function hasPermission($userId, $permissionName) {
    $sql = "SELECT 1 FROM role_permissions rp
            JOIN permissions p ON rp.permission_id = p.id
            JOIN users u ON u.role_id = rp.role_id
            WHERE u.id = ? AND p.name = ?";
    return (bool)db_fetch_one($sql, [$userId, $permissionName]);
}

// 控制器使用
if (!hasPermission($_SESSION['uid'], 'article.delete')) {
    exit('權限不足');
}

超管繞過


if ($_SESSION['role'] === 'super_admin') return true; // 直接放行

參考

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved