zoukankan      html  css  js  c++  java
  • 信息系统开发平台OpenExpressApp - 用户权限模块设计

           管理型软件不同于工具型软件,它涉及到多人协同操作,所以用户权限管理是必备的功能之一。本篇讲介绍一下OpenExpressApp的用户权限模块的大体应用思路,后续将会实现为框架的内置提供模块。

         现在很多系统都是采用RBAC(Role-based_access_control)来作为权限系统的设计参考,OpenExpressApp也准备参考它来设计权限子系统,所以下面我先简单介绍一下RBAC的内容,如果熟悉的可以略过这一小节。

    Core RBAC

         IT业界在2000年基于Ravi Sandhu等人提出Role-based抽象模型基础上形成了RBAC模型标准草案,这个草案实质是建立一套基于角色授权的模型标准

    。RBAC标准包括两部分:RBAC参考模型和RBAC功能描述。RBAC参考模型定义了RBAC的基本语义和基本元素集合,并通过集合论给出了一套RBAC数学模型,RBAC功能描述定义了RBAC系统必须的特性。

         下面为RBAC的核心参考模型示意图:对象主体(OBS)和操作主体(OPS)的许可权限(Permission)直接赋予角色(Role),用户(User)通过与Role的关系实现权限的授予,具体介绍可以参考an_introduction_to_rbac

    Core RBAC

    RBAC实现参考

    RBAC实现

    参见an_introduction_to_rbac

    组织机构相关的RBAC模型的变体

          在企业级应用时除了角色外,组织机构仍然是一个十分重要的维度,如何将角色与组织机构连接起来,是我们着重考虑的问题。因此结合组织机构和RBAC模型,衍生了与组织机构相关的RBAC模型的变体,如下图所示:部门+岗位=角色:岗位不能直接授权,只有与部门挂接后才能形成角色

    Core RBAC 2

    模块设计

    部门管理(组织机构)

    部门管理

           组织机构是企业的管理体系,企业的所有经营行为都要通过组织机构发挥作用。岗位只有处于特定的组织下才能发挥作用,此时形成角色。组织机构中节点成为部门,部门下挂接岗位,岗位与具体人员相关。

    权限设置

    权限设置

          该模块只有系统管理员(包括部门级系统管理员)可以操作,设置部门+岗位下的各个模块的功能权限数据权限

    功能权限:显示模块类别下的所有Command,控制到所有界面可以看到的工具条按钮和右键菜单

    数据权限:数据权限包含整个模块是否允许查看(模块打开功能)、单条记录是否允许访问(记录查看权限)和记录属性可见(字段级别权限)。这块还没有想得很清楚,目前先控制数据记录级别的权限,指定可以查看到哪些记录。

    注:目前不考虑上下级隶属关系、权限下发等等复杂组织机构功能

    更多内容: 开源信息系统开发平台之OpenExpressApp框架.pdf

  • 相关阅读:
    leetcode@ [300] Longest Increasing Subsequence (记忆化搜索)
    leetcode@ [200] Number of Islands
    JMETER压力测试报错:JAVA.NET.BINDEXCEPTION: ADDRESS ALREADY IN USE: CONNECT
    压力测试报告模版
    Jmeter学习—004—使用代理录制脚本—HTTP代理服务器(APP、web皆可)
    怎么用fiddler抓APP的包
    Jmeter录制脚本过程及Could not create script recorder报错、您的连接不是私密连接报错
    Github使用说明 --整理者米米
    Anaconda详细安装使用教程
    运用MQTT-JMeter插件测试MQTT服务器性能
  • 原文地址:https://www.cnblogs.com/zhoujg/p/1622331.html
Copyright © 2011-2022 走看看