`
whq
  • 浏览: 46743 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

关于用户角色权限管理一点想法

阅读更多
----------------------------------------------------------------------------
我以前设计过一个权限系统的模型,但是我没有实现,
可以说出来,大家讨论一下。

我认为一个系统的权限部分应该由以下四个部分组成:
  • Resource
  • Privilege
  • Role
  • User

  • 另外,一个系统中最少有这么几个角色:
  • Creator, 也可以称做 Programmer.
  • Administrator, 超级用户
  • General User

  • ----------------------
    权限各部分之间的关系:
    ----------------------
    1. Resource 就是系统的资源,比如部门新闻,文档等各种可以被提供给用户访问的对象.

    2. Privilege 是 Resource Related 的权限。
    什么意思?就是指,这个权限是绑定在特定的资源实例上的。
    比如说部门新闻的发布权限,叫做"部门新闻发布权限".
    这就表明,该 Privilege 是一个发布权限,而且是针对部门新闻这种资源的一种发布权限。
    我认为,Privilege 是由 Creator 在做开发时就确定的。

    3. Role, 是角色,拥有一定数量的权限。

    4. User, 与 Role 相关。在我设计的系统里,User是不能与 Privilege 直接相关的,
    User 要拥有对某种资源的权限,必须通过Role去关联.

    ----------------------
    系统大串联:(^_^)
    ----------------------
    下面简单介绍一下,一个权限从开发到使用的过程.

    1. Creator 创造 Privilege, Creator 在设计和实现系统时会划分,一个子系统或称为模块,
    应该有哪些权限. 拿新闻这一块来说,可能应该有:
  • 发布权限(publish)
  • 修改权限(modify)
  • 审核权限(review)
  • 浏览权限(visit)
  • .......
    这里完成的是 Privilege 与 Resource 的对象申明,并没有真正将 Privilege 与具体
    Resource 实例联系在一起.

    2. Administrator 指定 Privilege 与 Resource Instance 的关联.
    在这一步, 权限真正与资源实例联系到了一起, 产生了 Privilege Instance。
    比如,Administrator 创建了一个叫做 "部门新闻" 的Resource Instance.
    然后将发布权限与这个资源相关联,产生出 "部门新闻发布权限" 这个 Privilege Instance.

    3. Administrator 创建一个角色,称做 "部门新闻发布者".

    4. Administrator 将 "部门新闻发布权限" 赋予 "部门新闻发布者".

    5. Administrator 从用户列表中选取一个或多个用户,
    然后给这些用户赋予 "部门新闻发布者" 的角色

    6. User 进到系统,在它的可访问资源列表上,会出现"部门新闻发布"的链接.

    7. User 点击 "部门新闻发布"的链接, 根据 Creator 的实现,系统会检查
    [1] 当前用户是否拥有发布权限
    [2] 当前用户的发布权限是否与能操作正在访问的资源.

    ----------------------
    结束语
    ----------------------
    这是我一次在飞机场等飞机时突然设计出来的东西。因为没有具体实现,
    而且也可能因为时间仓促,没有想得很透彻,希望写出来大家讨论一下。
    具体实现上的技术问题,我也想过,我觉得应该已经想通,但是介于时间关系,
    这里写不了啦,大家可以谈谈看法 .
    分享到:
    评论

    相关推荐

      jive.chm

      13 JDBC性能优化技巧 <br> 权限设计 1 权限系统概要 2 关于权限设计方面的问题 3 关于用户角色权限管理一点想法 4 关于权限系统的设计 <br> 缓存系统 1 ...

      个人主页设计

      这个网页不仅是一个展示个人风采的平台,还集成了丰富的互动元素,如日志、相册、BBS论坛以及用户登录和管理员权限管理等,为用户提供了一个全方位的在线互动体验。 首先,ASP.NET是微软公司推出的一种Web应用程序...

      3_leave_Employee_源码

      6. **权限管理**:系统可能会区分不同角色(如员工、经理、HR管理员)的访问权限,确保信息安全。 7. **用户界面**:友好的用户界面,使得操作简单直观,无论是提交申请还是审批流程都能轻松完成。 从压缩包中的...

      red2 lead and contact management-开源

      6. **权限控制**:根据团队成员的角色分配不同级别的访问和操作权限,保障数据安全。 7. **集成**:可能与其他业务工具(如CRM、电子邮件营销平台等)集成,实现数据同步和自动化工作流。 由于red2是开源的,开发者...

      二十三种设计模式【PDF版】

      正因为这点不同,导致建筑的管理模式和软件的管理模式就有很多不同, 有些人认识不到这点,就产生了可以大量使用"软件 蓝领"的想法,因为他羡慕建筑中"民工"的低成本. 要知道软件还有一个与建筑截然相反的责任和用途,那...

    Global site tag (gtag.js) - Google Analytics