信息系统开发平台OpenExpressApp - 功能权限
在《信息系統開發平臺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 - 功能权限的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决magento保存产品时耗时很长的问
- 下一篇: 6、用户登录并发、新建以及编辑操作;