PHP Auth权限认证类

Auth和RBACRbac:Rbac是基于节点控制,根据3级节点,module,controller,action,节点类似与树形结构,3级节点间相互有关联表关系:用户表->用户角色关联表->角色表->角色节点关联表->节点表根据3级节点控制,粒度到操作action,每个节点为单一的模块,控制器或操作Auth:是对规则进行认证,不是对节点进行认证。用户可以把...
摘要由CSDN通过智能技术生成
Auth和RBAC
Rbac:

Rbac是基于节点控制,根据3级节点,module,controller,action,节点类似与树形结构,3级节点间相互有关联
表关系:用户表->用户角色关联表->角色表->角色节点关联表->节点表
根据3级节点控制,粒度到操作action,每个节点为单一的模块,控制器或操作
Auth:

是对规则进行认证,不是对节点进行认证。用户可以把节点当作规则名称实现对节点进行认证。
表关系:用户表->用户和用户组关联表->用户组表->规则表
根据规则控制,可自由定制不同的规则,非常自由,同一个规则内可以定制多个不同节点(中间的关系:OR AND)
可定制规则表达式,比如定制积分表达式
一个用户可以属于多个用户组。我们需要设置每个用户组拥有哪些规则
RBAC是按节点进行认证的,如果要控制比节点更细的权限就有点困难了,比如页面上面的操作按钮, 我想判断用户权限来显示这个按钮, 如果没有权限就不会显示这个按钮; 再比如我想按积分进行权限认证, 积分在0-100时能干什么, 在101-200时能干什么。 这些权限认证用RABC都很困难。 
而Auth权限认证, 它几乎是全能的, 除了能进行节点认证, 上面说的RABC很难认证的两种情况,它都能实现。

auth数据表

//数据库
 2 /*
 3 -- ----------------------------
 4 -- think_auth_rule,规则表,
 5 -- id:主键,name:规则唯一标识, title:规则中文名称 status 状态:为1启用,为0禁用,condition:规则表达式,为空表示存在就验证,不为空表示按照条件验证
 6 -- ----------------------------
 7 DROP TABLE IF EXISTS `think_auth_rule`;
 8 CREATE TABLE `think_auth_rule` ( 
 9     `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, 
10     `name` char(80) NOT NULL DEFAULT '', 
11     `title` char(20) NOT NULL DEFAULT '',  
12     `type` tinyint(1) NOT NULL DEFAULT '1',   #1-url,2-主菜单,这个字段可以根据业务逻辑,自己定义类别,见getAuthList函数
13     `status` tinyint(1) NOT NULL DEFAULT '1', 
14     `condition` char(100) NOT NULL DEFAULT '',  # 规则附件条件,满足附加条件的规则,才认为是有效的规则
15     PRIMARY KEY (`id`), 
16     UNIQUE KEY `name` (`name`)
17 ) ENGINE=MyISAM  DEFAULT CHARSET=utf8;
18 -- ----------------------------
19 -- think_auth_group 用户组表,
20 -- id:主键, title:用户组中文名称, rules:用户组拥有的规则id, 多个规则","隔开,status 状态:为1启用,为0禁用
21 -- ----------------------------
22 DROP TABLE IF EXISTS `think_auth_group`;
23 CREATE TABLE `think_auth_group` (
24     `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
25     `title` char(100) NOT NULL DEFAULT '',
26     `status` tinyint(1) NOT NULL DEFAULT '1',#用户组状态:为1正常,为0禁用,-1为删除
27     `rules` char(80) NOT NULL DEFAULT '', #rule表的ID值,用逗号分隔,这样这个用户组就可以用多种规则了。
28     PRIMARY KEY (`id&#
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值