zoukankan      html  css  js  c++  java
  • 我所理解的权限

    一直想找个时间自己写个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/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    增删改查(Statement接口、PreparedStatement接口、DBUtils(QueryRunner类))
    JDBC(获取数据库连接、自定义JDBC工具类)
    Mysql(视图)
    mysql:dml(元组的插入、删除、修改)
    C++ 指针和引用
    C++ 内存管理
    C++ new/malloc、delete/free
    C++ 内存对齐
    图形渲染原理
    C++获取单链表的倒数第k个节点
  • 原文地址:https://www.cnblogs.com/jiangbiao/p/2239394.html
Copyright © 2011-2022 走看看