一直想學習RBAC,又看了官網的例子,又百度,沒找到合適的教程。所以就只能自己研究了,就拿官網的例子來說吧
think_access表
作用是看某個組是否有權限訪問某個模塊下的方法或者訪問某個模塊,這個表少一個pid字段,自己添加就可以了
think_node表,節點表
作用是把所有需要的模塊,模塊下的方法都添加進來管理,用這個也可以直接讀取成後台的導航
name字段是模塊,方法的名稱,比如Index模塊,index方法等,
pid,這個模塊或者方法的父id,
level,級別,一般項目名是1,模塊是2,方法是3
正常先添加項目名,pid為0,level為1,status肯定是1了
一般都有個默認的Index模塊,Index模塊下有默認的index方法,
所以,插入Index,pid為項目名的id,level為2,再插入index,pid為模塊的id,level為3。
think_role為組的表
think_user(自己建的,可以用別的名稱,記得在配置文件裡改掉),用戶表
think_role_user是用戶表和組表的關聯。
接下來,在Lib下新建IndexAction,PublicAction,CommonAction
然後復制官網RBAC例子裡的Conf下的config.php中的內容到自己的項目裡,
關於RBAC所有的配置
'USER_AUTH_ON' => true,
'USER_AUTH_TYPE'=> 2,// 默認認證類型 1 登錄認證 2 實時認證
'USER_AUTH_KEY' => 'authId',// 用戶認證SESSION標記
'ADMIN_AUTH_KEY'=> 'administrator',
'USER_AUTH_MODEL' => 'User',// 默認驗證數據表模型,如果用戶表名稱不是User的話自己改
'AUTH_PWD_ENCODER' => 'md5',// 用戶認證密碼加密方式
'USER_AUTH_GATEWAY' => '/Public/login',// 默認認證網關
'NOT_AUTH_MODULE' => 'Public',// 默認無需認證模塊
'REQUIRE_AUTH_MODULE' => '',// 默認需要認證模塊
'NOT_AUTH_ACTION' => '',// 默認無需認證操作
'REQUIRE_AUTH_ACTION' => '',// 默認需要認證操作
'GUEST_AUTH_ON' => false, // 是否開啟游客授權訪問
'GUEST_AUTH_ID' => 0, // 游客的用戶ID
'DB_LIKE_FIELDS' => 'title|remark',
'RBAC_ROLE_TABLE' => 'think_role',
'RBAC_USER_TABLE' => 'think_role_user',
'RBAC_ACCESS_TABLE' => 'think_access',
'RBAC_NODE_TABLE' => 'think_node',