我有一个数据库,包含以下字段:
- 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();
,从而提供所需的粒度。