• 我所理解的权限


    一直想找个时间自己写个DEMO,因为看了不少这方面的资料,大致思路都应该清楚了,想自己动手写写应该更容易理解,同时也能找出自己那里还没有理解透彻,所以礼拜六、天就动手写了个DEMO。

    第一步:定义系统权限。

    第二步:添加导航菜单

    在添加导航的时候,同时需要选择该菜单所拥有的权限。

    这里的所属权限,用一个字段保存,后面给角色赋值权限展示列表的时候,用来比对是否显示。

    第三步:新增角色,给角色赋值相应的权限,还可以直接关联到用户(用户管理就不介绍了)。

    设置权限

    这里每个菜单所对应的权限是通过第二步中,新增导航菜单的时候保存到数据库的。

    这里显示的时候:获取权限列表跟导航表中的数据比对一下,有就现实无则不现实,这样就可以动态的控制每个导航的权限了。

    我把自己大致的思路描述下,还望各位指正。

    数据库设计:用户表、用户角色表、角色表、角色权限表、权限表(很传统的权限设计)。

    1、把系统中会涉及到的所有功能权限,全部存到“权限表”并且用一个代码标识。

    2、例举出系统中全部的功能菜单,同时也需要用一个代码来标识这个菜单。具体权限为“菜单代码—权限代码”(当然这是我自己这样设计的,也许不得当,但是我自己是这样理解滴)。

    当然这里还要标识这个菜单拥有哪些权限,譬如:增加、删除等等,默认权限为增、删、改、差。这里的“Lauthority”字段保存的是权限拼接的字符串,用逗号隔开

    1

    3、功能与角色的关联。

    创建角色表,添加角色(这里不做介绍);然后是“设置权限”,选择权限设置页面上面有图,很简单新增的时候判断页面哪些复选框勾选了,把勾选的值拼接起来,然后和角色ID一起存入“角色权限表”(我直接把已经拼接好的权限保存到checkbox的value中,保存到数据库的时候直接判断页面上的checkbox是否选择,然后拼接直接保存数据库)。

    4、给用户赋值角色。

    建立好用户信息,然后用checkbox来展示角色,同理在checkbox的value中存入角色的ID值。然后把用户ID和角色ID同时存入“用户角色表”

    这里的对应关系是一对多的关系即一个用户可以同时拥有多个角色(同理一个角色同时可以拥有多个权限)。

    5、使用。

    登录的时候,可以获取到用户ID,通过用户ID可以找到用户所属的权限,然后找出权限所拥有的功能,动态拼接成字符串。

     在进行操作的时候进行判断是否拥有该权限。

    页面判断。

    至此,我自己所理解的权限管理就做出来了。以前都是个人意见,各位如果有好的想法或者发现错误,还望指正。

    作者:LyIng.Net
    出处:http://www.cnblogs.com/jiangbiao/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    洛谷 1850 NOIP2016提高组 换教室
    2018牛客多校第三场 C.Shuffle Cards
    2018牛客多校第一场 B.Symmetric Matrix
    2018牛客多校第一场 A.Monotonic Matrix
    2018牛客多校第一场 D.Two Graphs
    2018宁夏邀请赛L Continuous Intervals
    2018宁夏邀请赛K Vertex Covers
    BZOJ
    HDU
    ACM International Collegiate Programming Contest, Egyptian Collegiate Programming Contest (ECPC 2015)
  • 原文地址:https://www.cnblogs.com/jiangbiao/p/2239394.html
Copyright © 2020-2023  润新知