我有一個網站有3種不同的用戶角色:guest(未註冊),member和admin。Zend框架 - 控制訪問控制器
我想限制訪問控制器,如下所示。
AuthController - >嘉賓,成員,管理員
AdminController - >管理
MemberController - >成員
有一個簡單的方法來做到這一點,而無需使用Zend_Acl裏?我真的不明白如何實際使用Zend_Acl。
我有一個網站有3種不同的用戶角色:guest(未註冊),member和admin。Zend框架 - 控制訪問控制器
我想限制訪問控制器,如下所示。
AuthController - >嘉賓,成員,管理員
AdminController - >管理
MemberController - >成員
有一個簡單的方法來做到這一點,而無需使用Zend_Acl裏?我真的不明白如何實際使用Zend_Acl。
我發現this tutorial對於實現一個簡單的Auth & ACL方案非常有用。
它調用創建一個Front Controller Plugin &自定義Zend_ACL類。
編輯:在您的評論回答這個問題
您可以定義的資源,而動作部分
// Add some resources in the form controller
$this->add(new Zend_Acl_Resource('error'));
$this->add(new Zend_Acl_Resource('auth'));
// Allow guests to see the error, login and index pages
$this->allow('guest', 'error');
$this->allow('guest', 'auth');
不要在前面插件檢查行動
if(!$acl->isAllowed($user->role, $request->getControllerName())) {
我沒有測試它,但它應該工作。
曾經有一個proposal官方的前端控制器插件,但遺憾的是沒有多少出現。該代碼仍然可用,但有一個tutorial on the Zend DevZone blog.
它可能是值得的檢查ZF 2.0即將發生的變化,他們根據一些提案的答覆更改訪問部分。
謝謝你,那個鏈接很好,很容易理解。一個問題,但。我沒有爲每一個控制器/操作輸入「新的Zend_Acl_Resource('auth :: login')」。我可以使用「auth :: all」來指定控制器中的所有操作嗎? – Ayrx 2012-07-21 10:48:17
@TerryChia看到我編輯的答案。 – Bogdan 2012-07-21 11:21:51