zoukankan      html  css  js  c++  java
  • yii rbac

    一、简介


    什么是rbac ?

    rbac是就是基于角色的访问控制。

    yii提供一套基础的底层接口,我们知道,rbac经历好几个阶段,从rbac0到rbac3,从基础的用户、角色、权限,到动态的rbac处理模式,再到现在的权限继承,解决复杂的多页面元素权限分配。

    总而言之,rbac有三个特性。

    1. 基础:

    角色、权限、用户 三大体系。

    2. 权限继承:

    角色派生原则,一个角色可以派生多个低权限角色。例如:总经理 =》经理、副经理、营运等

    3. 权限分配:

    权限分配必须从基础权限到高级权限,如果想拥有高级权限必须现拥有基础权限。例如:一个系统,我想拥有所有的权限。首先,我们必须现拥有查看所有菜单和子菜单的权限,然后,在拥有页面元素操作的权限,即增、删、改、查及其他。

    yii提供的接口,实现了rbac的基础功能,路由的控制、页面元素和菜单的显示、隐藏等。作为合格的程序员,思想的层次有时候决定你的技术层次。因为yii提供了基础,那么我们可以在它的接口上结合具体项目需求去拓展rbac的功能。

    具体如下:

    我需要一个菜单表,来存储的模块,以垂直分表 的形式,实现无限极目录。

    表字段:  name(名称:primary key)   route(路由)  pid(父ID) ...

    此表以三级联动,动态的添加权限、角色,记录模块的层次等级,菜单=》子菜单=》功能、页面元素。

    例如:

    权限管理      伪路由:permission/index      父ID   0         

    添加权限: 权限:permission/index      类型: 1

    添加角色: 权限管理           类型 : 2

    绑定权限: 权限管理      permission/index  

     

    角色分配:  角色: 总经理      权限: 权限管理

    用户权限: admin          总经理

    也许大家可能看不懂,但是如果熟悉yii底层rbac基础接口,就容易理解啦,因为yii提供了现有的一套完善的rbac权限逻辑,所以,我们只需要在其基础上去拓展。  这里需要在添加一个数据表格role表,用于客户端角色分配,客户端只需要去创建角色,并分配好角色权限,便可绑定用户。这里存在一个问题,就是刚开始说的模块化系统中,功能按钮过多问题。所以,我们一个在一个高级角色的基础上,去派生用户所需要的角色。

    例如:

    总经理   

    拿到总经理的权限,在其基础上去,分配经理、副经理的角色。分配用户。

     

         

  • 相关阅读:
    Sql server时间转时间long
    SQL Server死锁问题:事务(进程 ID x)与另一个进程被死锁在 锁 | 通信缓冲区资源上并且已被选作死锁牺牲品。请重新运行该事务。
    layui jquery ajax,url,type,async,dataType,data
    在 Postman 中报错:Self-signed SSL certificates are being blocked 的分析与解决
    SQL server CASE WHEN
    SQL server 统计分组经计
    Spring boot @Transactional
    基于mysql的sakila数据库脚本分析
    常用数据库JDBC
    在做银行支付接口案例的时候,遇到的编码问题!
  • 原文地址:https://www.cnblogs.com/cleverstone/p/9219174.html
Copyright © 2011-2022 走看看