在《信息系统开发平台OpenExpressApp - 用户权限模块设计》中对RBAC以及在OEA中的涉及进行了简要介绍,上篇《信息系统开发平台OpenExpressApp - 用户管理》介绍了基本的用户管理,本篇继续讲解基于用户的功能权限管理,下一篇介绍数据权限。

部门管理

    部门相当于组织机构,企业的组织机构其实是很复杂的。其中岗位是分级别的,且上下级汇报关系的,还有代理授权等,公司的管理又分为矩阵式管理,既有部门,也根据产品线分为事业群管理的等。目前OEA只是简单的实现了最最基本的一种模式。部门下面挂接岗位,这是部门+岗位=角色,角色下挂接人和功能权限,后面将增加数据权限。以下为权限相关的类图:

其中,OrgPisitionOperation为角色的功能权限对象,功能对象Operation引用了CommandBase,所以OEA的功能权限中显示可管理的功能是所有的Command,包括toolbar上的以及右键菜单上的命令,具体实现就不说了,大家以后可以去看具体代码。

功能权限

PBS模板界面如下图所示:

在【功能权限】显示如下,左边会列出系统所有模块,右边列出的是每个模块下的所有可控制的对象,在根对象会多出一个【打开模块】内置权限,后一小节会讲一下:

  这些功能都是我们编写的Command以及OEA内置的Command,也就是在界面能够看到的按钮、菜单等都可以控制。目前还不提供快捷方式设置,如设置可更改,则自动把添加、添加子等一并修改。

  当设置后,再次登录时,不允许操作的功能,AutoUI不会自动生成这些命令。

private static void CreateCommandsForToolBar(ToolBar toolbar, Type boType, ObjectView view, BoInfoOperationList commands)
{
       ......
for (int i = 0, c = commands.Count; i < c; i++)
{
var command = commands[i].Operation.Command;

//考虑权限
if (!(Csla.ApplicationContext.User.Identity as OEAIdentity).HavePermissionOnOperation
            (boInfo.Id, new Guid(command.Id)))
continue;

打开模块权限

  登录系统时,系统需要根据当前用户来生成模块列表。第一张图为所有功能列表,在第二张图表示的【部门管理】的【功能权限】中对业务对象去除了【打开模块】功能时,再次登录后看到图三模块列表。

//获取模块列表数据源
IList<BusinessObjectInfo> modules = new List<BusinessObjectInfo>();
if (Csla.ApplicationContext.User.Identity.IsAuthenticated)
{
foreach (var item in ApplicationModel.Modules)
{
if ((Csla.ApplicationContext.User.Identity as OEAIdentity).HavePermissionOnOperation
              (item.Id, new Guid(CommandNames.OpenModule)))
modules.Add(item);
}
}

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

转载于:https://www.cnblogs.com/zhoujg/archive/2010/01/07/1641502.html

信息系统开发平台OpenExpressApp - 功能权限相关推荐

  1. 信息系统开发平台OpenExpressApp - 数据权限

    功能权限一般放在一般是放在MVC的controller层,在<信息系统开发平台OpenExpressApp - 功能权限>介绍了OEA基本的功能权限,我们是通过统一配置的.作为数据应用产品 ...

  2. 信息系统开发平台OpenExpressApp - 应用模型ApplicationModel

    下图为OpenExpressApp的系统架构图,其中在应用模型是作为一种元数据贯穿于整个架构,应用模型运行在OpenExpressApp框架之上.应用模型是OEA的核心,理解好应用模型才能更好的使用O ...

  3. 信息系统开发平台OpenExpressApp -如何部署OEA应用

    BloodyAngel 把智能部署写的比较清楚了<信息系统开发平台OpenExpressApp - ClickOnce智能部署>,我在这里再进行一些补充. 如果用过OpenExpressA ...

  4. 信息系统开发平台OpenExpressApp - 支持日志功能

    一般信息系统都有审计功能,现在给OpenExpressApp增加简单的日志功能,主要就是记录用户的一些操作(如登录.打开模块.查看数据.点击按钮等)或者系统操作时的一些信息收集(比如保存错误等).为了 ...

  5. 信息系统开发平台OpenExpressApp - ClickOnce智能部署

    这里讲的是OpenExpressApp的部署方案.主要使用的是ClickOnce作为实施方案来实现:智能部署和智能客户端.不过,这里的使用方式跟以往的不太一样-- 部署概述 OpenExpressAp ...

  6. 信息系统开发平台OpenExpressApp:【OpenTest】 之 如何实现自动化测试框架

    本文更新版本已挪至   http://www.zhoujingen.cn/blog/4549.html ------------------------------- 在OpenExprssApp的R ...

  7. 信息系统开发平台OpenExpressApp:【OpenTest】 之 语法及其使用介绍

    在OpenTest 之 运行环境准备中介绍了运行自动化测试需要做的一些准备工作,本篇将继续给大家介绍OpenTest的脚本语法以及使用方法,通过学习后读者应该能够开始动手编写UI自动化测试脚本了. 关 ...

  8. 开源信息系统开发平台之OpenExpressApp框架 1.1 春节飞虎版发布

    自 信息系统开发平台openexpressapp 1.0发布后到现在有4个月了,中间陆续发布了一些内容介绍的blog. OpenExpressApp不会带给大家创新性的技术,而是以务实的态度,将现有技 ...

  9. OpenExpressApp架构-信息系统开发平台

    本文已挪至   http://www.zhoujingen.cn/blog/1458.html 软件=商业+架构+过程+组织,前一阵子谈论的Scrum更多包含的是过程和组织,这篇主要关注的是架构. 作 ...

最新文章

  1. threshold 二值化的实现
  2. mongoose 使用总结
  3. Java 16 正式发布!你还学得动吗?
  4. KitKat系统发现BUG:付费输入法更新后自动停用
  5. Java初学者习题20道(转)
  6. url中携带中文乱码问题
  7. 计算机创造奇迹英语作文,高中英语作文模板 第274期:Creating Miracle 创造奇迹
  8. leetcode_Basic Calculator II
  9. python中pcolor_python中pcolormesh-女性时尚流行美容健康娱乐mv-ida网
  10. 计算机网络系统组播功能_全国计算机等级考试四级计算机网络考试大纲(最新版2018年版)...
  11. Hive合并小文件参数总结
  12. 【操作系统】进程间通信 — 消息队列
  13. Android 计时器Timer用法
  14. android 原生camera——设置模块修改
  15. Prometheus监控报警系统
  16. 【CPU占用高】software_reporter_tool.exe
  17. 软件测试 | 期末复习——软件质量概述
  18. 计算机驱动有必要更新,我们平时电脑的驱动需要一直更新吗?教你如何正确的维护你的驱动...
  19. DBS3900组网方式学习
  20. 阿里云服务器优惠活动中的突发性/共享型/计算型/通用型实例怎么选

热门文章

  1. java web教学大纲_《JAVAWEB程序设计》教学大纲.pdf
  2. 云上创新 | 阿里云边缘云场景化商业实践
  3. 有赞 Flink 实时任务资源优化探索与实践
  4. AI现状 人才短缺成为障碍
  5. 工程师如何给女友买包?问问阿里“百事通”
  6. php音频添加语音,PHP生成语音
  7. linux脚本运行java程序设计_Java运行Shell脚本
  8. STM32F0308DISCOVERY探索套件
  9. 《CODM》的成功源自何处?TGA年度移动游戏的总结和思考
  10. ASP.NET Core 实战:使用 NLog 将日志信息记录到 MongoDB