基于角色的权限控制

首先要明白的有一个表就是需要记录整个项目中控制器和方法,这样在权限检测的时候就可以检测数据库对应的角色有没有这个控制器或者方法的权限,

但是需要明白的是在开发的过程中当然需要把这种权限给取消,这样在开发过程是需要增加一个控制器或者方法就不需要验证权限,然后开发好了之后就需要

在权限表中增加该控制器和方法。

一般基于角色的权限控制,需要用到下面的几张表

1.用户表2,权限表,3.角色表,4权限角色关系表5用户角色关系表

这种方式是用户通过,用户角色关系表查询出自己的角色,然后通过权限角色关系表查出,自己的权限表,然后权限表就是控制器与方法的笛卡尔积,然后

查询数据库得到控制器和方法的二维数组,然后根据THINKPHP的中关键字获取当前的控制器和方法来得到是否在该二维数组中,就可以让当前用户是否可以访问

一般权限控制写在基础的控制器的初始化方法,比如baseController,AdminController,然后所有继承这些控制器的控制器就自动验证自己权限,就不需要自己再去写了

原文地址:https://www.cnblogs.com/sengling/p/5535506.html