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

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

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

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

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

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

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

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

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

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

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

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

  完整代码如下:

        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条。

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

RDIFramework.NET开发实例━表约束条件权限的使用-Web的更多相关文章

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

    RDIFramework.NET开发实例━表约束条件权限的使用-WinForm 在实际的应用中,客户常有这样的需求,指定用户或角色可以看指定条件下的数据,这里的“指定条件”在RDIFramework. ...

  2. RDIFramework.NET(.NET快速信息化系统开发框架) Web版介绍

    RDIFramework.NET(.NET快速信息化系统开发框架)  Web版介绍 B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户 ...

  3. RDIFramework.NET -.NET快速信息化系统开发整合框架 【开发实例 EasyUI】之产品管理(WebForm版)

    RDIFramework.NET—.NET快速开发整合框架 [开发实例]之产品管理(WebForm版) 接上篇:RDIFramework.NET (.NET快速信息化系统开发整合框架) [开发实例]之 ...

  4. RDIFramework.NET-.NET快速信息化系统开发整合框架 【开发实例 EasyUI】之产品管理(MVC版)

    RDIFramework.NET—.NET快速开发整合框架 [开发实例]之产品管理(MVC版) 接上篇:RDIFramework.NET (.NET快速信息化系统开发整合框架) [开发实例]之产品管理 ...

  5. RDIFramework.NET V2.8版本 ━ 开发实例之产品管理(WinForm)

    RDIFramework.NET V2.8版本 ━ 开发实例之产品管理(WinForm) 现在,我们使用.NET快速开发整合框架(RDIFramework.NET)来开发一个应用,此应用皆在说明如何使 ...

  6. PHP多条件分类列表筛选功能开发实例

    PHP多条件分类列表筛选功能开发实例,前后台一起实现 后台对接可以拼接sql语句,PHP通过表单值隐藏值筛选,常用又实用! 表单筛选核心函数 function Filter(a, b) { var $ ...

  7. RDIFramework.NET ━ 9.7 操作权限项管理 ━ Web部分

    RDIFramework.NET ━ .NET快速信息化系统开发框架 9.7 操作权限项管理 -Web部分 随着经济全球化趋势的发展和企业间竞争的加剧,企业对管理要求不断变化.提高,越来越多的信息都表 ...

  8. html5文章 -- HTML5开发实例-网易微博手机Web App开发过程

    HTML5在国内外越来越受到互联网开发团队的青睐.国外,谷歌兴致勃勃地开发Chrome Web Store,微软发布了支持使用HTML5技术开发的“Irish Spring”主题网站,诺基亚斥巨资购得 ...

  9. C#软件开发实例.私人订制自己的屏幕截图工具(七)加入放大镜的功能

    上一篇:C#软件开发实例.私人订制自己的屏幕截图工具(六)加入配置管理功能 因为截图时可能须要精确截取某一部分,所以须要放大镜的功能,这样截取的时候才更easy定位截图的位置. 加入PictureBo ...

随机推荐

  1. NOIp 2013 #2 花匠 Label:爆0的Water

    题目描述 花匠栋栋种了一排花,每株花都有自己的高度.花儿越长越大,也越来越挤.栋栋决定 把这排中的一部分花移走,将剩下的留在原地,使得剩下的花能有空间长大,同时,栋栋希 望剩下的花排列得比较别致. 具 ...

  2. URAL 1287. Mars Canals

    题目链接 这题挺水,看懂了,就OK.卡了几下内存,还是卡过了. #include <iostream> #include <cstdio> #include <cstri ...

  3. 纪念逝去的岁月——C/C++排序二叉树

    1.代码 2.运行结果 3.分析 1.代码 #include <stdio.h> #include <stdlib.h> typedef struct _Node { int ...

  4. Linux文件锁flock

    Linux文件锁flock 在多个进程同时操作同一份文件的过程中,很容易导致文件中的数据混乱,需要锁操作来保证数据的完整性,这里介绍的针对文件的锁,称之为“文件锁”-flock. flock,建议性锁 ...

  5. C#面向对象之属性

    1.属性的定义及使用 class MyClass { ; //属性的定义 private string name = ""; //属性的定义 public int Id { get ...

  6. java分享第二天(变量及命名规范)

    1 JAVA是一种强类型语言,每个变量都必须声明其类型 2 Java变量是程序中最基本的存储单元,其主要包括变量名,变量类型和作用域 3 声明变量可以一行声明多个 4局部变量:方法或语句块内部定义的变 ...

  7. 类:String,Math,DateTime,Random随机数,异常保护

    String类: 练习: Math类: Random随机数: DateTime类: 异常保护: 练习: 1. 2. 3.方法一: 方法二: 4.人机大战石头剪刀布 5. //请输入你想输入的数字 // ...

  8. php链接mysql数据库

    php连接数据库有三种方法,刚刚发现通过mysql_connect,mysql_query连接已被废弃,而现在推荐的是通过“面向对象方法”和“PDO方法”连接数据库. 而我在使用面向对象的方法连接时, ...

  9. HTTP协议 (四) 缓存

    HTTP协议 (四) 缓存 阅读目录 缓存的概念 缓存的好处 Fiddler可以方便地查看缓存的header 如何判断缓存新鲜度 通过最后修改时间,判断缓存新鲜度 与缓存相关的header ETag ...

  10. Java面试题大全(三)

    81.如何设定的weblogic的热启动模式(开发模式)与产品发布模式? 可以在管理控制台中修改对应服务器的启动模式为开发或产品模式之一.或者修改服务的启动文件或者commenv文件,增加set PR ...