信息系统开发平台OpenExpressApp - 功能权限
在《信息系统开发平台OpenExpressApp - 用户权限模块设计》中对RBAC以及在OEA中的涉及进行了简要介绍,上篇《信息系统开发平台OpenExpressApp - 用户管理》介绍了基本的用户管理,本篇继续讲解基于用户的功能权限管理,下一篇介绍数据权限。
部门管理
部门相当于组织机构,企业的组织机构其实是很复杂的。其中岗位是分级别的,且上下级汇报关系的,还有代理授权等,公司的管理又分为矩阵式管理,既有部门,也根据产品线分为事业群管理的等。目前OEA只是简单的实现了最最基本的一种模式。部门下面挂接岗位,这是部门+岗位=角色,角色下挂接人和功能权限,后面将增加数据权限。以下为权限相关的类图:
其中,OrgPisitionOperation为角色的功能权限对象,功能对象Operation引用了CommandBase,所以OEA的功能权限中显示可管理的功能是所有的Command,包括toolbar上的以及右键菜单上的命令,具体实现就不说了,大家以后可以去看具体代码。
功能权限
PBS模板界面如下图所示:
在【功能权限】显示如下,左边会列出系统所有模块,右边列出的是每个模块下的所有可控制的对象,在根对象会多出一个【打开模块】内置权限,后一小节会讲一下:
这些功能都是我们编写的Command以及OEA内置的Command,也就是在界面能够看到的按钮、菜单等都可以控制。目前还不提供快捷方式设置,如设置可更改,则自动把添加、添加子等一并修改。
当设置后,再次登录时,不允许操作的功能,AutoUI不会自动生成这些命令。
{
......
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 - 功能权限相关推荐
- 信息系统开发平台OpenExpressApp - 数据权限
功能权限一般放在一般是放在MVC的controller层,在<信息系统开发平台OpenExpressApp - 功能权限>介绍了OEA基本的功能权限,我们是通过统一配置的.作为数据应用产品 ...
- 信息系统开发平台OpenExpressApp - 应用模型ApplicationModel
下图为OpenExpressApp的系统架构图,其中在应用模型是作为一种元数据贯穿于整个架构,应用模型运行在OpenExpressApp框架之上.应用模型是OEA的核心,理解好应用模型才能更好的使用O ...
- 信息系统开发平台OpenExpressApp -如何部署OEA应用
BloodyAngel 把智能部署写的比较清楚了<信息系统开发平台OpenExpressApp - ClickOnce智能部署>,我在这里再进行一些补充. 如果用过OpenExpressA ...
- 信息系统开发平台OpenExpressApp - 支持日志功能
一般信息系统都有审计功能,现在给OpenExpressApp增加简单的日志功能,主要就是记录用户的一些操作(如登录.打开模块.查看数据.点击按钮等)或者系统操作时的一些信息收集(比如保存错误等).为了 ...
- 信息系统开发平台OpenExpressApp - ClickOnce智能部署
这里讲的是OpenExpressApp的部署方案.主要使用的是ClickOnce作为实施方案来实现:智能部署和智能客户端.不过,这里的使用方式跟以往的不太一样-- 部署概述 OpenExpressAp ...
- 信息系统开发平台OpenExpressApp:【OpenTest】 之 如何实现自动化测试框架
本文更新版本已挪至 http://www.zhoujingen.cn/blog/4549.html ------------------------------- 在OpenExprssApp的R ...
- 信息系统开发平台OpenExpressApp:【OpenTest】 之 语法及其使用介绍
在OpenTest 之 运行环境准备中介绍了运行自动化测试需要做的一些准备工作,本篇将继续给大家介绍OpenTest的脚本语法以及使用方法,通过学习后读者应该能够开始动手编写UI自动化测试脚本了. 关 ...
- 开源信息系统开发平台之OpenExpressApp框架 1.1 春节飞虎版发布
自 信息系统开发平台openexpressapp 1.0发布后到现在有4个月了,中间陆续发布了一些内容介绍的blog. OpenExpressApp不会带给大家创新性的技术,而是以务实的态度,将现有技 ...
- OpenExpressApp架构-信息系统开发平台
本文已挪至 http://www.zhoujingen.cn/blog/1458.html 软件=商业+架构+过程+组织,前一阵子谈论的Scrum更多包含的是过程和组织,这篇主要关注的是架构. 作 ...
最新文章
- threshold 二值化的实现
- mongoose 使用总结
- Java 16 正式发布!你还学得动吗?
- KitKat系统发现BUG:付费输入法更新后自动停用
- Java初学者习题20道(转)
- url中携带中文乱码问题
- 计算机创造奇迹英语作文,高中英语作文模板 第274期:Creating Miracle 创造奇迹
- leetcode_Basic Calculator II
- python中pcolor_python中pcolormesh-女性时尚流行美容健康娱乐mv-ida网
- 计算机网络系统组播功能_全国计算机等级考试四级计算机网络考试大纲(最新版2018年版)...
- Hive合并小文件参数总结
- 【操作系统】进程间通信 — 消息队列
- Android 计时器Timer用法
- android 原生camera——设置模块修改
- Prometheus监控报警系统
- 【CPU占用高】software_reporter_tool.exe
- 软件测试 | 期末复习——软件质量概述
- 计算机驱动有必要更新,我们平时电脑的驱动需要一直更新吗?教你如何正确的维护你的驱动...
- DBS3900组网方式学习
- 阿里云服务器优惠活动中的突发性/共享型/计算型/通用型实例怎么选
热门文章
- java web教学大纲_《JAVAWEB程序设计》教学大纲.pdf
- 云上创新 | 阿里云边缘云场景化商业实践
- 有赞 Flink 实时任务资源优化探索与实践
- AI现状 人才短缺成为障碍
- 工程师如何给女友买包?问问阿里“百事通”
- php音频添加语音,PHP生成语音
- linux脚本运行java程序设计_Java运行Shell脚本
- STM32F0308DISCOVERY探索套件
- 《CODM》的成功源自何处?TGA年度移动游戏的总结和思考
- ASP.NET Core 实战:使用 NLog 将日志信息记录到 MongoDB