1、什麼是權限管理,權限管理就是對後台功能的細分,和對不同工作人員劃分不同的工作的管理
RBAC是如何實現的,通過對不同控制器和控制器不同方法的限制,實現的管理。
要實現RBAC需要三張表,一張用戶表,一張角色表 ,一張權限表
用戶表:
id ****** role_id
角色表
role_id ****** access_ids(記錄所有可以訪問的權限id)
權限表
access_id
記錄所有控制器 或者控制器下的 action
2、如何控制,在控制器的父類 或者控制器的初始化的方法裡面做判斷即可
$role_id = $_SESSION[‘role_id’];
$role = $db->role->findByPk($role_id);
$access = $db->access->findAllByPk($role[‘access_id’]);
根據路由器類獲取要執行的控制器或者控制器方法
$m = current_method();//獲取當前要訪問的方法
if(!in_array($m, $access)){
redirect(‘/index’);
}