对RBAC的提问

来源:5-1 课程总结

Windcx

2017-02-19 20:06

你好,老师。关于RBAC有两个问题,需要请教一下你

  1. 你在视频过程中,说,对于一个权限可以有多个URLS的问题

  2. 对于RBAC更好的表达,我觉得,如果有该权限,则显示菜单或者按钮,没有则不显示,如果强行访问没有权限的菜单,则再进行警告页面提示。但是关于显示的问题,不知道老师你是怎么解决的呢?我百思不得解

写回答 关注

4回答

  • 编程浪子
    2017-02-19 20:58:39
    已采纳

    关于第二个问题,我给你讲解一种我用的方法,你看看能否对你有点帮助,我们在BaseController中有个 checkPrivilege 方法,

    假如我们有个业务 还是 客户列表页面, 在客户列表有个添加按钮(按钮的链接指向是 /account/set),

    这个时候我们如何来控制这个按钮是否显示?你在 对应controller的action 方法中  这么写

    $set_flag = $this->checkPrivilege( " /account/set" );//判断是否有 添加的权限

    在view页面,我们就 

    <?php if( $set_flag):?>
    添加按钮
    <?php endif;?>


    希望对你有所帮助 ,

    Windcx 回复编程浪子

    使用一个以方法url为键值,初始值为0的url数组,然后判断之后重新赋值为1或0,视图再根据这些url的对应值去判断是否显示该权限。$url_arr = ['test/add'=>0,'test/edit'=>0,'test/delete'=>0]; 判断用$url_arr[$key] = $this->checkPrivilege( $key ) ? 1 : $value;//判断是否有 添加的权限

    2017-02-20 00:26:18

    共 3 条回复 >

  • 编程浪子
    2017-02-19 21:01:16

    最后 我发现你是个非常喜欢思考的,希望你坚持这点,你思考的越多你思考问题会更深层次,这也是优秀研发必备的一种能力

    编程浪子 回复Windcx

    性能问题 我建议可以从内部多了解一些函数的结构,并看一些算法书籍

    2017-02-19 23:49:30

    共 2 条回复 >

  • 编程浪子
    2017-02-19 20:49:48

    关于第一个问题,我来给你一个举例一个业务场景,有个权限叫做客户列表,但是客户列表中的有一部分数据显示我们在客户列表通过ajax去获取的(例如客户的消费总金额),那么如果只给权限配置一个 客户列表的url,这时候 关于ajax请求的这部分数据就没有权限,等于客户列表的权限其实默认 就要关联  ajax的这个url。

    例如 客户列表 url 是  /account/list, 而ajax获取消费总金额的url 是 /account/money

    那么配置的这个权限 就是 2个url一起配置, /account/list 和 /account/money

    其实当你给客户配置某个页面访问权限的时候,可能这个页面还有关联功能,这样就有了多个链接的问题



    编程浪子 回复Windcx

    是的,其实还有一些实例,例如一个人有添加客户的权限,是不是就有查看这个客户详情的权限,这是一种权限打包的方法,就是当我有某个权限的时候,其实隐含的我就应该有某个其他权限,这种在业务也是非常常见的

    2017-02-19 23:51:35

    共 2 条回复 >

  • 慕粉6579747
    2020-03-10 14:51:55

    浪子牛逼!!

RBAC打造通用web管理权限

RBAC为商业系统安全防范手段,结合理论和实战介绍RBAC

20465 学习 · 47 问题

查看课程

相似问题