对于我的项目,我有三种类型的用户。管理员,成员和其他人。 管理员和成员都可以执行某些功能。
我知道如何进行路由并检查管理员和调用管理员方法。但我不确定如何在用户类型之间共享功能。
任何提示?
最佳, [R
答案 0 :(得分:1)
您可以使用Auth组件进行操作。
取消注释app / 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();
}
此技术还可以帮助您管理是否要显示管理员用户角色的用户列表的其他内容。
答案 1 :(得分:0)
使用Auth组件中的isAuthorized()。我们假设您的用户在表用户中。 在你的AppController.php中:
public function isAuthorized($user){
return true;
}
在您的UsersController中,假设您希望method1和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');
如果您有任何其他问题,请随时提出。 :)