訪問控制過濾器(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 背...