## 菜單
菜單的作用
> 用于定制后臺的功能顯示,和為權限控制提供節點。
如何添加、編輯、刪除
> 添加、編輯后臺權限
> 點“用戶”->“權限管理”分組->"菜單管理"的菜單列表里“新增”按鈕
> 菜單url,如注釋那樣,首頁就填Index/index,無需admin,不區分大小,但最好和控制器里一樣首字母大寫,方法駝峰命名。
> 上級菜單,頂部菜單就選 “頂級菜單”,左側的就選上級菜單。
分組,是左側統計菜單,區分顯示用的,比如用戶下左側菜單的“用戶管理”和“行為管理”2個收縮,是用戶下菜單分組里分別填寫這2個區分開來的。都不填的話無分組顯示。
隱藏 選‘是’,表示添加了該節點,當有訪問授權的人進去改菜單上級菜單列表時,菜單上不顯示。
開發者可見, 只得是僅在后臺模式切換為開發者模式時可以顯示。
添加、編輯前臺模塊權限
> 前臺權限可在 用戶 -》 權限管理 -》 新增前臺權限節點 中添加,需要注意的是節點標識將被用于前臺權限的檢測。
前臺開發模塊時,檢測權限采用check_auth()函數。函數實現代碼如下
> function check_auth($rule, $type = AuthRuleModel::RULE_URL)
> {
> if (is_administrator()) {
> return true;//管理員允許訪問任何頁面
> }
> static $Auth = null;
> if (!$Auth) {
> $Auth = new ThinkAuth();
> }
> if (!$Auth->check($rule, get_uid(), $type)) {
> return false;
> }
> return true;
> }
可以看到,管理員是直接忽略權限的,接下來即采用Auth類進行檢測。$rule參數就是新增權限時的節點標識。
與權限的關系
> 為權限管理提供節點和可判斷的url規則(一些新增、配置按鈕也要加菜單里去),并且權限管理 設置的權限 控制菜單的顯示。安裝的超級管理員賬號除外,所有都能顯示。
權限管理
> 系統并沒有使用rbac作為權限控制,而是選擇了擴展的auth類。
> 基本的驗證單位
> 是后臺菜單里寫的url。
用戶組
> 和rbac相似,OC里也分用戶組和用戶。用戶屬于某個用戶組。針對用戶組授權后,在權限管理的用戶授權里在當前的分組選項里輸入用戶id可加入當前分組。
用戶訪問授權
> 公共訪問和禁止訪問的操作
> 正式版中為了方便大家不重復定義一些公共訪問和禁止的操作,在配置中設置了ALLOW_VISIT 和DENY_VISIT2個數組配置,這樣在其中的url就可以無需用戶組授權禁止和公共訪問了。