当前位置: 首页 > news >正文

开发公司可不经过建设单位分包委托/深圳网站建设优化

开发公司可不经过建设单位分包委托,深圳网站建设优化,广州小程序设计制作,注册域名后怎么做网站TP5-RBAC如何实现,插件一步到位龙行 PHP 2018-11-14 3775 0评论安装方法-composer(没有安装composer自行百度,这个应该都会装):composer require gmars/tp5-rbac如果该方法报错请按照以下方式操作:打开项目根目录下的composer.json在require中添加"…

TP5-RBAC如何实现,插件一步到位

龙行    PHP    2018-11-14    3775    0评论

安装方法-composer(没有安装composer自行百度,这个应该都会装):

composer require gmars/tp5-rbac

如果该方法报错请按照以下方式操作:

打开项目根目录下的composer.json

在require中添加"gmars/tp5-rbac": "dev-master"

运行composer update

添加后composer.json应该有这样的部分:

"require": {

"php": ">=5.4.0",

"topthink/framework": "^5.0",

"gmars/tp5-rbac": "dev-master"

},

##数据迁移(可选,可以直接使用包中的gmars_rbac.sql文件导入)在使用本插件之前需要有rbac锁需要的数据库。在迁移之前如果你的数据库中已有user数据表那么请你备份自己的user数据表后删除。

在你的项目的某个config.php中加入如下配置:

'migration' => [

'path' => ROOT_PATH .'vendor/gmars/tp5-rbac/'

],

然后把命令行切换到你的项目根目录Windows是cmd运行tp5数据迁移命令

php think migrate:run

如果迁移运行成功会在你的数据库中生成如下几张表:

user 用户表

user_role 用户角色对应表

role 角色表

role_permission 角色权限对应表

permission 角色表

###使用该插件--RBAC的管理

在一个系统中RBAC是基于角色的权限控制。作为开发人员需要明白这是两个不同的过程。第一个就是构建系统的RBAC结构,包括添加权限,角色,用户,用户角色对应关系,角色权限对应关系等。

在此先说明RBAC管理:

1.添加用户

这一步是在用户注册时要做的一步,就是讲注册的用户添加到user表中。

$rbacObj = new Rbac();

$data = ['user_name' => 'zhangsan', 'status' => 1, 'password' => md5('zhangsan')];

$rbacObj->createUser($data);

创建用户时传入唯一一个参数必须是数组。数组中应该包含用户表需要的数据。如果出现其他非user表的字段则会抛出异常。 该方法返回的结果为false或者Exception或者新添加用户的id。

2.添加权限

这一步是构建系统的权限。一般我们是以请求的路由为权限的识别标志。在该插件中使用path字段。

例如我们的系统中有商品列表这样的一个操作需要授权。

其路由为 /index/goods/list

添加路由如下:

$rbacObj = new Rbac();

$data = [

'name' => '商品列表',

'status' => 1,

'description' => '查看商品的所有列表',

'path' => '/index/goods/list',

'create_time' => time()

];

$rbacObj->createPermission($data);

3.添加角色

在RBAC的角色中角色是有父子关系的,也就是说所添加的角色可以是另一个角色的子角色。

$rbacObj = new Rbac();

$data = [

'name' => '商品管理员',

'status' => 1,

'description' => '商品管理员负责商品的查看修改删除等操作',

'sort_num' => 10,

'parent_id' => 1

];

$rbacObj->createRole($data);

需要注意的是在data中有个字段为parent_id这个字段标识了所要添加的角色的父角色。如果留为空则便是添加的父角色。

4.为用户分配角色

当然一个用户可以有多个角色。一般是使用多选框或其他形式选择后以数组的方式传入的。

例如:

$rbacObj = new Rbac();

$rbacObj->assignUserRole(1, [1, 2]);

assignUserRole($userId, array $roleArray = [])

该方法的第一个参数为用户id第二个参数是一个一位数组,其元素为角色的id

5.为角色分配权限

例如:

$rbacObj = new Rbac();

$rbacObj->assignRolePermission(1, [1, 2]);

将id分别为1,2的权限分配给id为1的角色

6.删除角色

删除角色的同时必须删除角色和权限的对应数据

$rbacObj = new Rbac();

$rbacObj->delRole(1);

其中需要传入的是角色id

7.将一个角色移到另一个角色下

以上已经说明了角色是有父子关系的那么肯定能够移动其位置

$rbacObj = new Rbac();

$rbacObj->moveRole(1,3);

该例子是将id为1的角色移动到id为3的角色下作为子角色。

还有其他修改删除等方法的文档日后再补全,功能是有的

###使用该插件--RBAC权限验证

####登录后获取权限列表 如果自己写权限验证则请忽略这一步,如果要使用rbac插件来验证权限则必须要这样做。

在登录成功后做如下操作:

$rbacObj = new Rbac();

$rbacObj->cachePermission(1);

这个方法是查询id为1的用户的所有权限并且以path索引后存入cache

####请求时的权限验证

当然对于每一个方法都要进行权限验证时我们一般是在某一个父类中定义一个方法进行权限验证,验证如下:

$rbacObj = new Rbac();

$rbacObj->can('/index/goods/list');

该方法是验证当前用户有没有操作/index/goods/list的权限,如果有则返回true如果无则返回false

其中can的参数可以使用tp5的特性获取。

提供文件下载:

下载地址:https://pan.baidu.com/s/1BHG_BXijM8ycobAet8Pj4g

密码:

94.html此处内容已隐藏,评论后刷新即可查看!

使用方法:

vendor里面新建gmars/tp5-rbac/解压后放在这里面就好了

评论一下

赞助站长

赞助站长X

版权申明:此文如未标注转载均为本站原创,自由转载请表明出处《龙行博客》。

本文网址:https://www.liaotaoo.cn/94.html

http://www.jmfq.cn/news/4923397.html

相关文章:

  • 个人域名怎么申请/厦门seo搜索排名
  • wordpress文章数据太多/seo案例模板
  • 网站ftp文件/百度网址大全下载安装
  • ui设计师mike个人网站/南京seo公司教程
  • 做外贸需要有自己的网站吗/华联股份股票
  • 大连开发区做网站的公司/一份完整的活动策划方案
  • wordpress不能载入图片/沈阳优化网站公司
  • 镇江网站建设哪家好/seo优化需要多少钱
  • 免费建设网站平台/线上网络平台推广
  • wordpress 不显示主题/seoul是韩国哪个城市
  • 购买完域名后怎么做网站/东莞做网站哪家好
  • 个人网站怎么做代码/排名网站
  • 长沙最好网站建设/曼联vs恩波利比分
  • 游戏推广应该怎么推/北京seo网站推广
  • 洛阳有哪些做网站的公司/网络营销的4p策略
  • 优酷的网站头怎么做的/淘客推广怎么做
  • 软件设计师中级/长沙seo网站管理
  • 东莞做网站多少钱/北京seo服务商找行者seo
  • 网站制作的内容包含/亚马逊跨境电商
  • 嘉兴做网站的公司有哪些/360投放广告怎么收费
  • 做财务需要关注哪些网站/关键词林俊杰的寓意
  • 做牙的网站叫什么/武汉seo报价
  • 学生个人网页设计主题/系统优化的意义
  • 机加工如何用网站开发客户/微信crm客户管理系统
  • 网站建设亇金手指专业/宝鸡网站开发公司
  • 海口建设工程信息网站/搜索竞价托管
  • 潍坊市网站建设公司/北京百度seo
  • 二维码创意设计/被公司优化掉是什么意思
  • 网站建设项目的工作分解/seo软件推广
  • vps 网站发布/长沙建站seo公司