• 用户权限管理基础原理的讲解-------玩转它!


    一、基础讲解。

        最近用到了RedGlove Permission权限管理系统,将自己的设计思路以及开发过程一起分享给大家,希望大家能多提意见。

      

         首先,我来介绍一下权限系统的主要组成部分它主要由模块权限功能模块、角色权限、用户权限三大部分组成,下面将详细介绍一下三大权限的作用以及它们互相存在的依赖性

       模块权限部份:

          说白一点就是管理系统中的功能模块,而在这些模块中,它们有着各式各样的具体的操作,这些具体的操作权限就是模块权限,例如现新加了一个用户管理的功能模块,在这个

          模块设计中需要进行浏览、添加、修改、删除、审核、查询(用户管理)等一些具体的操作,在系统运行的过程中,不是所有的用户都会拥有这些权限的(功能的),根据需求(需要得到功能),就产生了下

          的角色权限。

        角色权限部分:

          它就是一个身份(管理员/员工),拥有这个身份的用户在系统中能做些什么,不能做些什么,用户都得依照这个身份,无法过界,这也是一个权限的范围限定在一个管理系统有很多的用户,我们不能将模块中

          的权限逐个的分配给用户,在角色的出现就解决了这个问题,它就像一个权限组,将模块的权限指派给角色,让拥有该角色的用户可以拥有对模块对应的操作权限,然而,一个系统中用户可能会成千上万不

          等,但我想角色最多不过几十个,将模块权限授权给几十个角色比授权给上万个用户轻松多了,角色虽然是权限组,有限定的作用范围,但是也有会出现意外情况的时候,如果一个用户有操作用户模块的角色,

          但对它的有个特殊的要求,就是不能操作用户模块中的删除或其它功能,还有就是它还有操作另外模块的权限,而它拥有的角色只能访问用户模块,怎么办呢?难道要为这一个用户再建立一个角色吗?我的回答

          是No.

      用户权限:

          我想很多朋友以前在开发管理系统时都用过这种权限模式,虽然这种方法比较原始,但它能解决我们上面所遇到的问题,当然,还需要做一些小小的改进,在角色中,我们只告诉用户能做什么,没有告诉的就不能做,

        以角色做权限批量判断这点已经够了,而用户单独的权限判断有点特殊,它得跳出角色。它的权限优先于角色的权限,它拥有对某权限允许和禁止操作的功能,例如一个用户的角色权限可以操作用户模块所有的功

        能,而该用户拥有了该模块某一功能的禁止权限,那该用户不能对这个模块进行该功能操作,反之,用户角色没有授权这个模块功能,而用户权限被授予了这个功能模块的允许权限,那它就能操作该功能,流程图如

        下:

     

          

    如果这个不能让你完全理解,那就在看看这个链接:http://www.cnblogs.com/Gavinzhao/archive/2009/11/10/1599691.html

    权限管理的代码实现请看下篇博客~~~~~~~~

  • 相关阅读:
    【剑指offer】07重建二叉树,C++实现
    【剑指offer】06从尾到头打印链表,C++实现
    面向对象设计模式原则01 开闭原则(OCP)
    面向对象设计模式原则02 里氏替换原则(LSP)
    面向对象设计模式原则03 依赖倒置原则(DIP)
    面向对象设计模式原则05 接口隔离原则(ISP)
    面向对象设计模式原则04 单一职责原则(SRP)
    leetcode1218
    leetcode1232
    leetcode1228
  • 原文地址:https://www.cnblogs.com/yejiaojiao/p/6168732.html
Copyright © 2020-2023  润新知