Download the PHP package gmars/tp5-rbac without Composer

On this page you can find all versions of the php package gmars/tp5-rbac. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package tp5-rbac

tp5-rbac

本扩展包是tp5的rbac包,使用了部分tp5的特性实现了关系型数据库中特殊数据结构的处理。

安装方法

先安装composer如果不知道怎么安装使用composer请自行百度。 打开命令行工具切换到你的tp5项目根目录

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

  1. 打开项目根目录下的composer.json
  2. 在require中添加"gmars/tp5-rbac": "dev-master"
  3. 运行composer update

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

v2.0+版本使用说明

配置

请将此配置加在config/app.php的配置中

使用说明

实例化rbac

管理操作

初始化rbac所需的表

该方法会生成rbac所需要的表,一般只执行一次,为了安全,执行后会加锁,下次要执行需要删除锁文件再执行。

创建权限分组

编辑和修改调用同一个方法编辑时请在参数中包含主键id的值

创建权限节点

给用户分配角色

获取权限列表

获取角色列表

删除权限分组

删除权限

删除角色

验证操作

service方式

service方式因为要用到session一般要依赖于cookie。在用户登录后要获取用户权限操作

用户请求时进行验证

使用refresh_token刷新权限

请在有效期内使用refresh_token来刷新授权 用户请求时验证

< v2.0使用说明

数据迁移(可选,可以直接使用包中的gmars_rbac.sql文件导入)

在使用本插件之前需要有rbac锁需要的数据库。在迁移之前如果你的数据库中已有user数据表那么请你备份自己的user数据表后删除。

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

然后把命令行切换到你的项目根目录Windows是cmd运行如下命令

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

使用该插件--RBAC的管理

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

在此先说明RBAC管理:

1.添加用户

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

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

2.添加权限

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

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

其路由为 /index/goods/list

添加路由如下:

3.添加角色

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

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

4.为用户分配角色

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

例如:

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

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

5.为角色分配权限

例如:

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

6.删除角色

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

其中需要传入的是角色id

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

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

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

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

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

登录后获取权限列表

如果自己写权限验证则请忽略这一步,如果要使用rbac插件来验证权限则必须要这样做。

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

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

请求时的权限验证

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

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

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


All versions of tp5-rbac with dependencies

PHP Build Version
Package Version
No informations.
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package gmars/tp5-rbac contains the following files

Loading the files please wait ....