我试图创建acl(访问控制列表),但不是按角色创建,而是按用户id创建,因为客户端需要相同的级别,但拥有不同的权限
如何检查访问数据库中没有权限的方法或控制器的用户
下面是表权限结构
+------------------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------------------+--------------+------+-----+---------+----------------+
| permission_id | int(11) | NO | PRI | NULL | auto_increment |
| permission_name | varchar(255) | NO | | NULL | |
| permission_desc | text | YES | | NULL | |
| permission_created_at | datetime | YES | | NULL | |
| permission_modified_at | datetime | YES | | NULL | |
+------------------------+--------------+------+-----+---------+----------------+
然后,权限表和权限角色表有关系,这里是权限角色的结构
+--------------------+---------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------------+---------+------+-----+---------+----------------+
| permission_role_id | int(11) | NO | PRI | NULL | auto_increment |
| user_id | int(11) | NO | MUL | NULL | |
| permission_id | int(11) | NO | MUL | NULL | |
+--------------------+---------+------+-----+---------+----------------+
现在,我很困惑,如果用户访问的控制器用户没有权限访问它,我怎么能检查它?如果按路由或uri检查,但我的数据库没有保存类控制器。。。有什么解决办法吗?
谢谢你,对不起我的英语不好
1条答案
按热度按时间1hdlvixo1#
假设
Branch
等等。是控制器和view
,edit
对于存储系统,您必须执行以下操作:acl模型:
如果您重构了数据库结构以在
permission
你不必包括的tablecan_access
在每个auth方法中,可以让控制器扩展MY_Controller
代码如下: