当前位置: 首页 > 编程日记 > 正文

RDIFramework.NET ━ 9.8 用户权限管理 ━ Web部分

RDIFramework.NET ━ .NET快速信息化系统开发框架

9.8 用户权限管理 -Web部分 

在实际应用中我们会发现,权限控制会经常变动,如:需要调整角色的分配,需要收回与授予某些角色、用户可访问的模块(菜单)与相应的操作权限、需要给某些角色添加与移除相应的用户等等,如果没有一个灵活可靠的配置管理工具将会使权限控制变得十分麻烦。用户权限管理模块就是为了方便用户、角色权限的集中统一管理而开发的模块。在用户权限管理模块,操作员可以添加或移动用户到指定的角色、可以分配或授予指定用户的模块(菜单)的访问权限、可以收回或分配指定用户的操作(功能)权限、可以对所有用户、角色、模块(菜单)、操作(功能)权限进行集中批量设置,用户授权范围内的设置,表字段权限的设置以及表约束条件权限的设置等。用户权限管理主界面如下图所示:

9.8.1、用户权限设置

用户权限设置可以集中设置当前所选用户的归属角色、模块(菜单)访问权限、拥有的操作权限,是权限设置中经常使用的一个功能。用户权限设置如下图所示。在“用户权限设置”界面,我们可以很方便的清除当前用户所拥有的所有权限,也可以对其进行模块及操作权限的设置。

9.8.2、用户角色关联

用户角色关联可以方便的添加与移除当前选择用户所归属的角色,用户归属于某个角色,就意味着该用户“继承”了该角色所拥有的一切权限。用户角色关联如下图所示。在用户角色关联操作界面上,我们可以为当前用户添加可用角色,也可以移除已经拥有的角色。

9.8.3、用户角色集中批量设置

用户角色集中批量设置可在一个操作界面对所有有效登录用户授予或收回相应的角色,方便用户操作,用户角色集中批量设置如下图所示。

9.8.4、用户权限批量设置

用户权限批量设置是一个综合集中设置界面,在权限分配过程中应用最为频繁,通过一个操作界面即可完成常用的角色、模块、操作权限的分配。用户权限批量设置如下图所示,若要分配或收回权限,单击树形节点前的复选框即可完成角色、模块(菜单)、操作权限的分配或收回。

9.8.5、用户授权范围设置

用户授权范围设置可以很好的实现授权的再分配,对于大的集团企业可以明显的减少管理员权限分配的负担与压力,用户授权范围可以在当前用户拥有的权限下,再次有选择的分配给其他的操作人员。通俗点讲就是,某些岗位上工作的人是管理员,但不是所有业务的管理员,只是某个业务领域内的管理员,他在这个业务领域内应该有所有的权限,而且还可以委托别人来管理、可以授权给别人来管理某个业务,这就是用户授权范围管理,类似于数据库权限中的级联授权,用户授权范围如下图所示。

在上图中的“用户”与“角色”选项卡,操作用户可以设置当前所选用户可以授权的“用户”与“角色”并点击保存按钮即可使设置生效。对于“组织机构”、“模块(菜单)”、“可分配的操作(功能)权限”三个选项卡,我们可以通过右击,在弹出的快捷菜单中选择相应的功能进行操作,如下图所示:

 

9.8.6、表字段权限设置

在某些应用中,我们有时需要针对不同的登录用户设置其对特定表的访问,列的访问、编辑权限。在“表字段权限设置”中我们可以设置用户可以访问的数据表,以及对数据表列的访问、编辑、拒绝访问权限。用户的表字段权限设置如下图所示。

在表字段权限设置窗口,左侧列出的数据表,选中即拥有对该表的访问权限,取消则会拒绝访问该表,同时该表对应的列访问、编辑、拒绝访问权限也会同步取消。如果左侧没有列出我们需要的数据表,可以通过9.11章节“表字段管理”中的“设置权限控制表”功能进行设置。

9.8.7、约束条件权限设置

有时我们需要针对不同的用户设置其可以看到某个数据表的数据的条件,在我们这儿就是约束条件,用户对表约束条件设置如图下所示。

  在上图中,我们设置所选用户“EricHu”对数据表“模块(菜单)表”的约束条件为“ENABLED = 1”,在开发过程中,通过我们的服务接口来得到这个约束条件表达式,就可以对相应用户进行表数据约束的控制了。

  要设置相应数据表的约束条件,我们可以单击“设置条件表达式”按钮,进行所选表对当前所选用户约束条件进行设置,如下图所示。

相关文章:

RDIFramework.NET — 基于.NET的快速信息化系统开发框架 — 系列目录

相关文章:

python并发

python并发 (这部分还需要改,先将就着看) Python 的 threading 模块引入了锁(Lock)。threading 模块提供了 Lock 和 RLock 两个类,它们都提供了如下两个方法来加锁和释放锁: acquire(blockingTr…

学会在Unity中创建一个Match-3益智游戏 Learn To Create a Match-3 Puzzle Game in Unity

MP4 |视频:h264,1280720 |音频:AAC,44.1 KHz,2 Ch 语言:英语中英文字幕(根据原英文字幕机译更准确) |时长:48场讲座(6h 38m) |大小解压后:2.8 GB 含课程文件 游戏开发变得容易了。使用Unity学习C#并创建自…

Mybatis入门:2(xml形式的增删改查)

xml形式的增删改查 这里感觉没啥好讲的&#xff0c;照着代码自己敲一遍、认真再看看应该都懂的。 Maven工程坐标 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http:/…

NSDate见解

#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) { // NSDate *date [NSDate date]; // // NSDateFormatter *formatter [[NSDateFormatter alloc] init];// yyyy 年// MM 月// dd 日// HH 24小时 hh 12小时// mm 分钟// ss 秒钟…

秒杀系统架构设计

秒杀活动的技术挑战 1. 对现有网站业务造成冲击 秒杀活动只是网站营销的一个附加活动&#xff0c;这个活动具有时间短&#xff0c;并发访问量大的特点&#xff0c;如果和网站原有应用部署在一起&#xff0c;必须会对现有业务造成冲击&#xff0c;稍有不慎可能导致整个网站瘫痪。…

SpringBoot 2.x 使用 JWT(JSON Web Token)

一、跨域认证遇到的问题 由于多终端的出现&#xff0c;很多的站点通过 web api restful 的形式对外提供服务&#xff0c;采用了前后端分离模式进行开发&#xff0c;因而在身份验证的方式上可能与传统的基于 cookie 的 Session Id 的做法有所不同&#xff0c;除了面临跨域提交 c…

在Unity中制作4种不同的游戏

流派:电子学习| MP4 |视频:h264&#xff0c;1280720 |音频:AAC&#xff0c;48.0 KHz 语言&#xff1a;英语中英文字幕&#xff08;根据原英文字幕机译更准确&#xff09;|大小解压后:8.6 GB 含课程素材 |时长:15h 3m Unity 制作4款无代码手机游戏 Make 4 games in Unity with …

Spring学习笔记:1(初步认识概念)

Spring的三大主要特征 spring主要特征有三个&#xff1a;控制反转&#xff08;IOC&#xff09;&#xff0c;依赖注入&#xff08;DI&#xff09;和面向切面&#xff08;AOP&#xff09;。 IoC&#xff1a;Inverse of Control&#xff08;控制反转&#xff09; 1.对控制反转的…

shell example01

条件判断 if [[ -e ${1} ]]; thenecho "$(tput setaf 2) found ${1} $(tput sgr0)"cat ${1} elseecho "$(tput setaf 1) not found ${1} $(tput sgr0)"exit 1 fi//简化[[ -e ${1} && -e ${2} ]] && cat ${1} > ${2}//判断取反txt4.txti…

gradle教程 [原创](eclipse/ADT下 非插件 非Android Studio/AS)纯手打 第一篇:安装配置gradle...

一个bug 一个脚印的叫你们用gradle。 1介于网络上的很多资料都是老的 不适用与现在的新版本gradle 尤其是有些gradle方法改名了老的用不了 2介于网上都是粘贴复制并且零碎我很蛋疼啊&#xff0c;走了很多歪路才弄出来&#xff0c;所以我弄一个完全完整的版本 3我不但会写gradle…

java的static关键字

java的static关键字 静态变量和静态方法 static关键字最基本的用法是&#xff1a; 1、被static修饰的变量属于类变量&#xff0c;可以通过类名.变量名直接引用&#xff0c;而不需要new出一个类来 2、被static修饰的方法属于类方法&#xff0c;可以通过类名.方法名直接引用&…

Spring学习笔记:2(IOC装配Bean之xml方式)

xml配置方式装配Bean 本文借鉴于&#xff1a;https://www.cnblogs.com/qdhxhz/p/6511887.html Spring框架Bean实例化的方式提供了三种方式实例化Bean 构造方法实例化(默认无参数&#xff0c;用的最多)静态工厂实例化实例工厂实例化 代码如下&#xff1a; Bean1类(构造方法…

学习RPG Maker MZ开发创建并发布PC和移动端游戏

Complete RPG Maker MZ: Create and Publish for PC and Mobile 完整的RPG制造商MZ:为个人电脑和移动设备创建和发布 MP4 |视频:h264&#xff0c;1280720 |音频:AAC&#xff0c;44.1 KHz&#xff0c;2 Ch 语言&#xff1a;英语中英文字幕&#xff08;根据原英文字幕机译更准确…

CSS选择器总结

总结几种自己比较容易混淆的&#xff1a; 1. 后代选择器&#xff0c;写法是 E1 E2&#xff0c;如 ul li&#xff0c;选择的是所有后代&#xff0c;包括子后代、孙后代…; 2. 子选择器&#xff0c;写法 E1 > E2&#xff0c;只选择子后代&#xff0c;不包括孙后代元素&#xf…

OSChina 周六乱弹 —— 小明和网关超经典的故事~

2019独角兽企业重金招聘Python工程师标准>>> 周六&#xff0c;又到了瞎扯淡的时间了。周末&#xff0c;约会&#xff0c;男男女女&#xff0c;还有那啥那啥&#xff0c;你们懂得&#xff5e; 男人和女人明显不同&#xff0c;这样才导致了异性相吸吗&#xff1f; 1. …

概念艺术绘画学习教程 Schoolism – Foolproof Concept Painting with Airi Pan

Schoolism——万无一失的概念绘画潘 大小解压后&#xff1a;3.19G 含课程素材文件 1920X1080 .mp4 语言&#xff1a;英语中英文字幕&#xff08;根据原英文字幕机译更准确&#xff09; 信息: 万无一失的概念绘画潘 本课程由概念设计师兼插画师潘开发&#xff0c;与大家分享她…

Mybatis复习笔记:1

关于模糊查找 模糊查找其实有两种基本操作(之前学的时候看的不太仔细&#xff0c;漏了…) 第一种 <select id"findByType" parameterType"String" resultType"com.domain.User">select * from product where product_type like #{produ…

文件只能安装一次

1 def get_mac_address(): 2 macuuid.UUID(int uuid.getnode()).hex[-12:] 3 return ":".join([mac[e:e2] for e in range(0,11,2)]) 获取计算机名字 1 import socket 2 socket.gethostname() linux下获取主机外网ip 1 import socket2 import fcntl3 impo…

Linux pipe函数

1. 函数说明 pipe&#xff08;建立管道&#xff09;&#xff1a; 1) 头文件 #include<unistd.h> 2) 定义函数&#xff1a; int pipe(int filedes[2]); 3) 函数说明&#xff1a; pipe()会建立管道&#xff0c;并将文件描写叙述词由參数filedes数组返回。 fi…

操作系统知识点:全面

操作系统知识点&#xff1a;全面 https://www.jianshu.com/p/c3a3cc0254b1 https://www.jianshu.com/u/881ef7b85f62 posted on 2019-09-03 21:44 竹径风声 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com/girl1314/p/11455906.html

在UE4中创建CG动画 How to create a movie in Unreal Engine 4 using Metahuman

MP4 |视频:h264&#xff0c;1280720 |音频:AAC&#xff0c;44.1 KHz 语言&#xff1a;英语中英文字幕&#xff08;根据原英文字幕机译更准确&#xff09;|大小解压后:1.55 GB |时长:1h 16m 你会学到什么 如何在虚幻引擎4中创建CG动画 虚幻引擎4 Metahuman 使用metahuman在虚幻引…

MyBatis复习笔记2:配置文件详解

配置文件详解 属性&#xff08;properties&#xff09; MyBatis可以使用 properties 来引入外部 properties 配置文件的内容 resource&#xff1a;引入类路径下的资源 url&#xff1a;引入网络路径或者磁盘路径下的资源 properties 有三种方式使用&#xff1a; 1、通过 reso…

Android ActionBarDrawerToggle、DrawerLayout、ActionBar 结合

ActionBarDrawerToggle是一个开关。用于打开/关闭DrawerLayout抽屉 ActionBarDrawerToggle 提供了一个方便的方式来配合DrawerLayout和ActionBar。以实现推荐的抽屉功能。 即点击ActionBar的homebutton&#xff0c;就可以弹出DrawerLayout抽屉。 在Activity中的两个回调函数中使…

【转】statfs获得硬盘使用情况 模拟linux命令 df

原文网址&#xff1a;http://blog.csdn.net/mociml/article/details/5335474 说明&#xff1a;本文以主要为转载内容&#xff0c;同时加入了我在使用过程中遇到问题对其的修正&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff0…

SQL常见的面试题

SQL常见的面试题 https://www.jianshu.com/p/558f2113bb62 posted on 2019-09-03 21:55 竹径风声 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com/girl1314/p/11455959.html

Mybatis入门:4(多表查询操作)

多表查询操作 Mybatis的多表操作 表之间的关系有几种&#xff1a;一对多、一对一、多对一、多对多 举例: 用户和订单就是一对多——一个用户可以下多个订单 订单和用户就是多对一——多个订单属于同一个用户 人和身份证号就是一对一 一个人只能有一个身份证号 一个身份证号只…

Python for虚幻引擎编辑器工具脚本学习教程

Python for Unreal Engine Editor Tools Scripting MP4 |视频:h264&#xff0c;1280720 |音频:AAC&#xff0c;44.1 KHz&#xff0c;2 Ch 语言&#xff1a;英语中英文字幕&#xff08;根据原英文字幕机译更准确&#xff09; |时长:23节课(4h 8m) |大小解压后:2.7 GB 含课程文件…

C++ Windows进程管理

功能&#xff1a; 1.各个进程启动、挂起、恢复、停止等 2.监听进程的运行状态&#xff0c;进程退出&#xff08;正常、非正常&#xff09;时&#xff0c;通知用户 3.异步队列 4.线程安全 进程管理器类&#xff1a; #ifndef __ProcessManager_ProcessManager_H__ #define __Proc…

shell中和||的使用方法

&&运算符:command1 && command2&&左边的命令&#xff08;命令1&#xff09;返回真(即返回0&#xff0c;成功被执行&#xff09;后&#xff0c;&&右边的命令&#xff08;命令2&#xff09;才能够被执行&#xff1b;换句话说&#xff0c;“如果…

SQL中内连接、外连接、交叉连接

SQL中内连接、外连接、交叉连接 SQL连接可以分为内连接、外连接、交叉连接。 数据库数据&#xff1a; book表 stu表 1.内连接 1.1.等值连接&#xff1a;在连接条件中使用等于号()运算符比较被连接列的列值&#xff0c;其查询结果中列…