对于我的项目,我有三种类型的用户。管理员,成员和其他人。 管理员和成员都可以执行某些功能。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