ThinkPHP RBAC官網的例子詳解

2021-09-03 08:30:30 字數 1637 閱讀 8026

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_gateway'         =>  '/public/login',// 預設認證閘道器

'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',

然後在commonaction中新增

function _initialize() else {

if (c('guest_auth_on')) {

$this->assign('jumpurl', php_file . c('user_auth_gateway'));

// 提示錯誤資訊

$this->error(l('_valid_access_'));

這個的作用說白了就 檢查是否有許可權登入和是否有許可權訪問而已。

然後indexaction繼承commonaction

預設沒有登入或者沒有許可權會調轉到public/login,public直接看官網的例子把~應該沒問題。

最重要的是access表和node表,role表中的關係要弄清楚了,還有role,role_user,user表之間的關係

10 10 010 簡介 官網 官網翻譯

netty是 乙個非同步事件驅動的網路應用程式框架,用於快速開發可維護的高效能協議伺服器和客戶端。netty是乙個nio客戶端伺服器框架,可以快速輕鬆地開發協議伺服器和客戶端等網路應用程式。它極大地簡化並簡化了tcp和udp套接字伺服器等網路程式設計。快速簡便 並不意味著最終的應用程式會受到可維護性...

Robolectric Shadows 官網翻譯

robolectric 通過建立乙個包含真實android 框架 的執行時環境來進行工作。這意味著,當你的測試或被測試 呼叫到android框架時,你會獲得更真實的體驗,因為這跟在實際裝置上執行的大部分 都是相同的。然而還是有一些限制 native code 源 android源 不能在你的開發機器...

OpenAI gym的官網案例

tags openai gym 當然這只是gym的乙個遊戲,還有一些如 mountaincar v0,mspacman v0 requires the atari dependency or hopper v1 requires the mujoco dependencies environment...