为用户组实现动态分配角色


Implement dynamically assigned roles for user groups

我有一个数据库,包含以下字段:

  • ID
  • 名字
  • 手机
  • <
  • 地址/gh>消息

为简单起见,假设我有三个用户组——用户、超级用户和管理员。

我寻找最好的设计(开发基于php的应用程序,基于CodeIgniter),允许管理员为不同的用户组定义视图字段(用户组A应该可以访问字段X, Y, Z),以及用户自己必须能够选择要看到哪些字段(从他的组允许)。

这应该发生在后端,而不是前端。

指导吗?

问候,克里斯

可能您会找到解决这个问题的几种方法。这取决于需求以及功能如何在模块中公开和分布。

在我的例子中,访问控制是在控制器的基础上给出的,所以我定义了可以在构造函数中检查访问的抽象控制器,例如:

class User_Controller extends CI_Controller {
    public function __construct() 
    {
        parent::__construct();
        $this->auth->is_logged_in() || RedirectToLogin();
    }
}
class SuperUser_Controller extends User_Controller {
    public function __construct() 
    {
        parent::__construct();
        $this->auth->is_superuser() || RedirectToBadUser();
    }
}
class Admin_Controller extends User_Controller {
    public function __construct() 
    {
        parent::__construct();
        $this->auth->is_admin() || RedirectToBadUser();
    }
}

is_logged_in, is_superuser()和is_admin()应该根据你的规格来解决。然后根据需要的关卡,根据其中一个来制作你的控制器。

无论如何,没有什么可以阻止您在方法中添加$this->auth->is_superuser() || RedirectToBadUser();,从而提供所需的粒度。