0

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

  • ID
  • 电子邮件
  • 电话
  • 地址
  • 信息
  • ...

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

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

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

有什么指导吗?

问候,克里斯

4

1 回答 1

0

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

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

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();在方法内部添加一个,提供你需要的粒度。

于 2013-04-01T09:10:32.003 回答