YII學習第二十三天,accessRules用法

2022-08-18 17:51:15 字數 1915 閱讀 1341

訪問控制過濾器(access control filter)

訪問控制過濾器是檢查當前使用者是否能執行訪問的controller action的初步授權模式。

這種授權模式基於使用者名稱客戶ip位址訪問型別

訪問控制過濾器,適用於簡單的驗證

需要複雜的訪問控制,需要使用將要講解到的基於角色訪問控制(role-based access (rbac))。

)。class postcontroller extends ccontroller

}在上面,設定的access control過濾器將應用於postcontroller裡每個動作。

過濾器具體的授權規則通過過載控制器的ccontroller::accessrules方法來指定。

class postcontroller extends ccontroller

}上面設定了三個規則,每個用個陣列表示。

陣列的第乙個元素不是'allow'就是'deny',其他的是名-值成對形式設定規則引數的。

上面的規則這樣理解:

create和edit動作不能被匿名執行;

delete動作可以被admin角色的使用者執行;

delete動作不能被任何人執行。

訪問規則是乙個乙個按照設定的順序乙個乙個來執行判斷的。

和當前判斷模式(例如:使用者名稱、角色、客戶端ip、位址)相匹配的第一條規則決定授權的結果。

如果這個規則是allow,則動作可執行;

如果是deny,不能執行;如果沒有規則匹配,動作可以執行。

為了確保某類動作在沒允許情況下不被執行,設定乙個匹配所有人的deny規則在最後,類似如下:

return array(

// ... 別的規則...

//以下匹配所有人規則拒絕'delete'動作

array('deny',

'action'=>'delete',

),);

因為如果沒有設定規則匹配動作,動作缺省會被執行。

訪問規則通過如下的上下文引數設定:

actions:設定哪個動作匹配此規則。

users:設定哪個使用者匹配此規則。

此當前使用者的name 被用來匹配,三種設定字元在這裡可以用:

*: 任何使用者,包括匿名和驗證通過的使用者。

?: 匿名使用者。

@: 驗證通過的使用者。

roles:設定哪個角色匹配此規則

這裡用到了將在後面描述的role-based access control技術。

ips:設定哪個客戶端ip匹配此規則。

verbs:設定哪種請求型別(例如:get, post)匹配此規則。

expression:設定乙個php表示式。

),      

array('deny',  // deny all users

'users'=>array('*'),

),);

}public function loadmodel($id)

return $model;}}

第二十三天

1 使用 koa 搭建伺服器 const koa require koa 路由請求 context ctx 上下文 包含req和res ctx.body hello koa2 2 如何配置 koa 路由 const koa require koa 建立路由物件 const router requir...

冥想第二十三天

早上進行了快樂的事情,並跑了步,非常舒服,西四環有點堵,提前給朋友發了資訊讓他們避開。這也是為朋友多做的一些事情,感謝朋友。又來公園裡面轉了兩圈,聽著 你的答案 渾身舒服。輕鬆,保持輕鬆,進行一天的開心快樂的工作吧,上午工作到11 40左右感覺視線有些模糊,就是困了,然後告訴自己就是困了。平穩的度過...

UI第二十三天 動畫

動畫的使 場景 ios中的動畫是指 些檢視上的過渡效果 合理利 動畫能提 戶體驗 uiview的屬性動畫 calayer動畫 uiview動畫 uiviewtransition動畫 uiview動畫 frame 檢視框架 center 檢視位置 bounds 檢視 backgroundcolor 背...