對於我的項目,我有三種類型的用戶。管理員,成員和其他人。 管理員和成員都可以執行某些功能。cakephp管理員和成員的常見操作
我知道如何做路由和檢查管理員,並調用管理方法。但是我不確定如何在用戶類型之間共享一個函數。
任何提示?
最佳, ř
對於我的項目,我有三種類型的用戶。管理員,成員和其他人。 管理員和成員都可以執行某些功能。cakephp管理員和成員的常見操作
我知道如何做路由和檢查管理員,並調用管理方法。但是我不確定如何在用戶類型之間共享一個函數。
任何提示?
最佳, ř
你可以簡單地使用Auth組件。 在您的應用/ Config/core.php文件中取消註釋Routing.prefixes = array('admin', 'manager');
。
藉助this link設置Auth組件。 現在,如果您的控制器的方法在兩個用戶角色'admin'和'manager'中很常見,那麼爲任何角色定義一個方法並在另一個方法中調用它很簡單。
比方說在你的UsersController.php
public function admin_list()
{
/*.... define here ..... */
}
public function manager_list()
{
$this->admin_list();
}
這項技術也將幫助你管理,如果你想展示一些其他的東西與管理員用戶角色的用戶列表。
使用isAuthorized()從驗證部件。假設您的用戶在桌面用戶中。 在你AppController.php地說:
public function isAuthorized($user){
return true;
}
在你的UsersController,讓說你要方法1和method2只爲管理員和會員,不爲別的可見。
public function isAuthorized($user){
if(in_array($this->action, array('method1', 'method2'))){
if($user['role'] != 'admin' || $user['role'] != 'user'){
return false;
}
}
return true;
}
,當然,包括在AppController中您AuthComponent:
public $components = array('Session', 'Auth');
如果您有任何問題,請隨時問。 :)
你也可以使用'setAction()'來實際使用這個動作並渲染它view。http://api20.cakephp.org/class/controller#method-ControllersetAction – jeremyharris 2012-07-25 14:48:02
我已經取消了core.php中的行註釋,但是想知道是否在調用manager_list()時不會cakephp請求manager_list的視圖? – rajankz 2012-08-23 14:45:02