RDIFramework.NET开发实例━表约束条件权限的使用-Web

简介:

RDIFramework.NET开发实例━表约束条件权限的使用-Web

           在上一篇文章“RDIFramework.NET开发实例━表约束条件权限的使用-WinForm”我们讲解了在WinForm下表约束条件权限的使用,下面我们来看看在Web下的使用。

        在实际的应用中,客户常有这样的需求,指定用户或角色可以看指定条件下的数据,这里的“指定条件”在RDIFramework.NET框架中,我们称作为“用户或角色的约束条件表达式”。要完成这样的功能,可以通过RDIFramework.NET框架中的用户或角色的“约束条件权限设置”功能即可完成,再在你的业务表单中调用我们的得到用户或角色的约束条件表达式接口即可完成。

         可以调用框架提供的下面几个接口即可完成对用户或角色约束条件的得到。

1
2
1、RDIFrameworkService.Instance.TableColumnsService.GetConstraint
2、RDIFrameworkService.Instance.TableColumnsService.GetUserConstraint

      下面我们以实例进行展示约束条件权限的设置,可供用户参考。

         要使用“约束条件权限”首先需要在用户权限或角色权限中设置用户或角色的“约束条件”表达式。用户的“约束条件权限设置”如下图所示:

  在“系统管理”→“用户权限管理”→“权限设置”→“约束条件权限设置”,即可打开上面的窗口。在“表约束条件”设置窗口,可以选择我们需要设置表的约束条件,点击“设置条件表达式”即可设置。如下图所示:  

  “角色约束条件的设置”与“用户约束条件设置”类似,可参考上面的“用户约束条件设置”,角色约束条件设置窗口如下:


         经过上面的设置,现在我们就可以使用“约束条件”了,使用很简单,只需在需要展示数据的地方通过框架提供的服务接口即可。下面我们以“产品管理”来演示约束条件权限。

         在“产品管理”主界面的得到分页数据的代码中调用以下接口即可得到用户的约束条件

1
2
1、RDIFrameworkService.Instance.TableColumnsService.GetConstraint( this .UserInfo, PiUserTable.TableName,  this .UserInfo.Id, ProductInfoTable.TableName);  //按表约束条件获得数据(按当前用户)。
2、RDIFrameworkService.Instance.TableColumnsService.GetUserConstraint( this .UserInfo, ProductInfoTable.TableName);  //按表约束条件获得数据(得到用户与角色的约束条件)。

  完整代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
private  void  GetPageData(RequestParamModel<CASE_PRODUCTINFOEntity> rpm, HttpContext ctx)
{
     var  manager =  new  CASE_PRODUCTINFOManager( this .dbHelper);
     int  recordCount = 0;
     string  sort = rpm.Sort;
     string  order = rpm.Order;
     if  ( string .IsNullOrEmpty(sort))
     {
         sort = CASE_PRODUCTINFOTable.FieldCREATEON;
     }
     if  ( string .IsNullOrEmpty(order))
     {
         order =  "DESC" ;
     }
  
     string  filter = rpm.Filter;
     if  ( string .IsNullOrEmpty(filter))
     {
         filter = CASE_PRODUCTINFOTable.FieldDELETEMARK +  " = 0 " ;
     }
     UserInfo cUser = Utils.UserInfo;
     //string userConstraintExpress = RDIFrameworkService.Instance.TableColumnsService.GetConstraint(cUser, PiUserTable.TableName, cUser.Id, CASE_PRODUCTINFOTable.TableName); //按表约束条件获得数据(按当前用户)。
     string  userConstraintExpress = RDIFrameworkService.Instance.TableColumnsService.GetUserConstraint(cUser, CASE_PRODUCTINFOTable.TableName);  //按表约束条件获得数据(得到用户与角色的约束条件)。
  
     if  (! string .IsNullOrEmpty(userConstraintExpress))
     {
         filter +=  " AND "  + userConstraintExpress;
     }
      
     var  dtTemp = manager.GetDTByPage( out  recordCount, rpm.Pageindex, rpm.Pagesize, filter, (sort +  " "  + order));
     ctx.Response.Write(JSONhelper.FormatJSONForEasyuiDataGrid(recordCount, dtTemp));
}

       在上图中我们对用户”yonghu”设置了约束条件,现在我们以“yonghu”登录系统看下他能看到的数据:

       我们对用户“yonghu”设置的约束条件是单价大于10000,在上图中,可以看到系统已经自动过滤了数据共143条数据。我们再以超级管理员用户登录进来看下,如下图所示: 

        以超级管理员登录的数据是8971条。  

        以上只是一个简单的实例展示,还可以更加灵活的应用到其他各个实用的场合。


1
2
3
4
5
6
7
8
9
10
作者: EricHu
出处: http://www.cnblogs.com/huyong
Email: 406590790@qq.com
QQ 交流:406590790
QQ群:237326100
平台博客: 【CSDN】http://blog.csdn.net/chinahuyong
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;【CNBLOGS】http://www.cnblogs.com/huyong
关于作者:高级工程师、信息系统项目管理师、DBA。专注于微软平台项目架构、管理和企业解决方案,多年项目开发与管理经验,曾多次组织并开发多个大型项目,精通DotNet,DB(SqlServer、Oracle等)技术。熟悉Java、Delhpi及Linux操作系统,有扎实的网络知识。在面向对象、面向服务以及数据库领域有一定的造诣。现从事DB管理与开发、WinForm、WCF、WebService、网页数据抓取以及ASP.NET等项目管理、开发、架构等工作。
如有问题或建议,请多多赐教!
本文版权归作者和CNBLOGS博客共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,可以通过邮箱或QQ 联系我,非常感谢。

041429355177306.jpg



本文转自yonghu86 51CTO博客,原文链接:http://blog.51cto.com/yonghu/1603783,如需转载请自行联系原作者

相关文章
|
12天前
|
监控 JavaScript 前端开发
《理解 WebSocket:Java Web 开发的实时通信技术》
【4月更文挑战第4天】WebSocket是Java Web实时通信的关键技术,提供双向持久连接,实现低延迟、高效率的实时交互。适用于聊天应用、在线游戏、数据监控和即时通知。开发涉及服务器端实现、客户端连接及数据协议定义,注意安全、错误处理、性能和兼容性。随着实时应用需求增加,WebSocket在Java Web开发中的地位将更加重要。
|
23天前
|
Web App开发 前端开发 开发工具
介绍Web开发的基础知识
介绍Web开发的基础知识
25 7
|
1天前
|
开发框架 前端开发 JavaScript
采用C#.Net +JavaScript 开发的云LIS系统源码 二级医院应用案例有演示
技术架构:Asp.NET CORE 3.1 MVC + SQLserver + Redis等 开发语言:C# 6.0、JavaScript 前端框架:JQuery、EasyUI、Bootstrap 后端框架:MVC、SQLSugar等 数 据 库:SQLserver 2012
|
1天前
|
PHP
web简易开发——通过php与HTML+css+mysql实现用户的登录,注册
web简易开发——通过php与HTML+css+mysql实现用户的登录,注册
|
1天前
|
前端开发 数据挖掘 API
使用Python中的Flask框架进行Web应用开发
【4月更文挑战第15天】在Python的Web开发领域,Flask是一个备受欢迎的轻量级Web框架。它简洁、灵活且易于扩展,使得开发者能够快速地构建出高质量的Web应用。本文将深入探讨Flask框架的核心特性、使用方法以及在实际开发中的应用。
|
13天前
|
XML JSON JavaScript
使用JSON和XML:数据交换格式在Java Web开发中的应用
【4月更文挑战第3天】本文比较了JSON和XML在Java Web开发中的应用。JSON是一种轻量级、易读的数据交换格式,适合快速解析和节省空间,常用于API和Web服务。XML则提供更强的灵活性和数据描述能力,适合复杂数据结构。Java有Jackson和Gson等库处理JSON,JAXB和DOM/SAX处理XML。选择格式需根据应用场景和需求。
|
23天前
|
API
2024常用Web支付开发讲解教程
本教程为web支付开发,讲解了最常用的两钟支付:支付宝支付和微信支付,服务器配置和API对接,学完本课程可以学会微信支付、和支付宝支付开发。
17 2
2024常用Web支付开发讲解教程
|
26天前
|
JSON JavaScript 前端开发
移动WEB特效开发
移动WEB特效开发
13 0
|
26天前
|
数据安全/隐私保护 Windows
.net三层架构开发步骤
.net三层架构开发步骤
7 0
|
26天前
深入.net平台的分层开发
深入.net平台的分层开发
39 0