1

对于我的项目,我有三种类型的用户。管理员、成员和其他人。管理员和成员都可以执行某些功能。

我知道如何进行路由和检查管理员,以及调用管理员方法。但我不确定如何在用户类型之间共享功能。

有什么提示吗?

最好的,R

4

2 回答 2

1

您可以简单地使用 Auth 组件来完成。Routing.prefixes = array('admin', 'manager');在您的 app/Config/core.php 文件中取消注释 。

借助此链接设置 Auth 组件。现在,如果您的控制器方法与两个用户角色“admin”和“manager”通用,那么为任何角色定义一个方法并在另一个方法中调用它很简单。

让我们在你的 UsersController.php 中说

public function admin_list()
{
  /*.... define here ..... */
}
public function manager_list()
{
    $this->admin_list();
}

如果您想在经理用户角色的用户列表中显示其他内容,此技术也将帮助您进行管理。

于 2012-07-25T04:38:00.547 回答
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');

如果您还有其他问题,请随时提问。:)

于 2012-07-24T20:55:14.817 回答