role
角色权限管理改造方案
# 为什么需要角色
- 现有的权限方案
- .net后台权限管理
在后台类中配置,权限 = 一级菜单:二级菜单:三级菜单;
通过在view模板中判断是否有权限显示菜单
后端通过权限配置拦截url请求。
- Java端权限管理
现在只有项目菜单权限管理
通过类
- User {
- }
UserCookies{
private String accessToken;
private String userId;
private String userName;
private String realName;
private boolean systemAdmin;
private List<ProjectId> projectAuth;
}
通过projectAuth判断该用户有多少个项目。
通过systemAdmin判断是否有菜单权限,每个项目的菜单权限都是一样的
Js中配置如下,isAdmin为true时显示菜单
{
defaultValue: ['课程资源', '课程列表'],
title: '课程资源',
show: true,
link: '',
icon: 'icon-course',
target:false,
items: [
//课程资源->课程资源
{
title: '课程资源',
items: [
{
title: '课程列表',
isAdmin: true,
link: '/admin/course/courselist?project_id=' + projectId,
icon: null,
parent_title: '课程资源'
},
{
title: '课程标签',
isAdmin: true,
link: '/admin/course/courseslabel?project_id=' + projectId,
icon: null,
parent_title: '课程资源'
}
]
}
]
}
- 兼容改造方案
- .net功能模块权限控制
java后台开放一个接口让.net调用判断是否有权限(入参为资源编码)。.net需要配置请求服务跟资源编码的关系
需求:java端增加接口判断该用户是否有权限,.net需要配置请求服务跟资源编码的关系
- Java功能模块权限控制
资源信息存储:
建枚举类配置资源编码跟资源名称,
例如:
COURSE("课程资源", "course"),
COURSE_LIST("课程列表", "course:list"),
COURSE_TAG("课程标签", "course:tag"),
course为课程资源一级菜单,course:list为课程资源下二级菜单。
权限分配时,数据库保存course:list跟角色的对应关系.
需求:权限模块梳理配置到类里面
菜单显示控制:
在view模板中写判断逻辑来控制菜单显示
例如该用户角色权限列表下有course:list,course:tag,
在view模板中写死,当权限列表中有course:list,就显示course:list对应的菜单。
需求:开发菜单显示页面
后端访问控制:
在控制器方法中注解资源编码,这样一个资源编码就可以控制多个控制器方法。
需求:对每个需要权限控制的请求注解
- 页面开发对应的java后端服务改造
需求:根据页面的具体请求开发相应的接口
- 前端页面开发
- 项目用户权限管理
参考已有的.net后台页面,不保存用户信息中的账户信息跟备注信息。
- 项目角色权限管理
参考已有的.net后台页面
- 系统用户权限管理
参考已有的.net后台页面,在现有角色权限模型中增加真实姓名字段
- 系统角色权限管理
参考已有的.net后台页面
role的更多相关文章
- 解决:win10_x64 VMware Workstation and Hyper-V are not compatible. Remove the Hyper-V role from the system before running VMware Workstation
bcdedit /set hypervisorlaunchtype off A reboot of of the Windows OS is necessary 必须重启才能生效 To enab ...
- html中role的作用
role 是增强语义性,当现有的HTML标签不能充分表达语义性的时候,就可以借助role来说明. 通常这种情况出现在一些自定义的组件上,这样可增强组件的可访问性.可用性和可交互性. role的作用是描 ...
- jedis支持哨兵主从配置role为slave
jedis功能强大,但是不能像nodejs一样指定从slave中读数据,使数据量读写量较大时读写分离,减少redis压力. 我们可以利用jedis中的方法封装一个类似于此的方法. github地址: ...
- RBAC中 permission , role, rule 的理解
Role Based Access Control (RBAC)——基于角色的权限控制 permission e.g. creating posts, updating posts role A ro ...
- Security8:删除Role 和 User
数据库的Role 和 User都是基于Specified DB的,在删除这些Principal之前,必须使用Use clause,切换到指定的DB中. sys.database_role_member ...
- 使用 fixed role 授予权限
今天下午,Leader 发mail给我,要求授予某个User对数据库只读的权限. Step1,在SQL Server中为该用户创建一个Login和User,在创建User时,建立Login 和 Use ...
- ABP 初探 之User、Role、Permission数据库设计 (EntityFramework 继承的另一种使用方法)
最近群里(134710707)的朋友都在讨论ABP源码,我把最近学习的内容记录下来,同时也分享给大家,希望正在研究ABP源码的朋友有一定帮助. 上篇介绍ABP的多语言,本篇主要介绍权限的数据库设计,用 ...
- You must use the Role Management Tool to install or configure Microsoft .NET Framework 3.5 SP1
今天在Windows Server 2008 下安装SQL SERVER 2008时,碰到如下错误: You must use the Role Management Tool to install ...
- Hibernate加载数据失败failed to lazily initialize a collection of role
在测试获取数据库中的数据或者在页面获取时,有时会遇到这样的错误提示: failed to lazily initialize a collection of role: com.exam.entity ...
- Windows Azure - Troubleshooting & Debugging: Role Recycling
每年总会碰到几次Role Recycling,处理完记录下 :) 1. 和往常一样先排查系统日志,修复异常.> 没效果 :( 2. 排查Event Viewer中的Logs,没有发现比较奇怪Lo ...
随机推荐
- 【Java】JTable的数据刷新
前言 这段时间在写一个大实验,水果超市管理系统,yes,我觉得挺大的,但是就当成了一个实验,接下来还有一个课程设计和一个实训,more bigger... 问题 在我把其他的都写好的时候去写UI层,发 ...
- [C#]插件编程框架 MAF 开发总结
1. 什么是MAF和MEF? MEF和MEF微软官方介绍:https://learn.microsoft.com/zh-cn/dotnet/framework/mef/ MEF是轻量化的插件框架,MA ...
- How to fix the problem that Raspberry Pi cannot use the root user for SSH login All In One
How to fix the problem that Raspberry Pi cannot use the root user for SSH login All In One 如何修复树莓派无法 ...
- mybatis拦截器实现数据权限
前端的菜单和按钮权限都可以通过配置来实现,但很多时候,后台查询数据库数据的权限需要通过手动添加SQL来实现. 比如员工打卡记录表,有id,name,dpt_id,company_id等字段,后两个表示 ...
- 论c++实现sql连接
寻找关于c++ 对 sql连接的过程非常艰辛. 今天要做一个简单项目,要求在远程sql上实现对数据的实时模拟,每五分钟进行一次随机产生数据并写入. 在此之前我并没有用过代码实现sql连接的经历,在翻阅 ...
- 4. JDK相关设置
恐惧是本能,行动是信仰(在此感谢尚硅谷宋红康老师的教程) 1. 项目的 JDK 设置 File-->Project Structure...-->Platform Settings --& ...
- 使用Flask和Django构建Web应用程序:现代Web应用程序框架
目录 1. 引言 2. 技术原理及概念 2.1 基本概念解释 2.2 技术原理介绍 2.3 相关技术比较 3. 实现步骤与流程 3.1 准备工作:环境配置与依赖安装 3.2 核心模块实现 3.3 集成 ...
- 使用MASA Stack+.Net 从零开始搭建IoT平台 第五章 使用时序库存储上行数据
@ 目录 前言 分析 实施步骤 时序库的安装 解决playload没有时间戳问题 代码编写 测试 总结 前言 我们可以将设备上行数据存储到关系型数据库中,我们需要两张带有时间戳的表(最新数据表 和 历 ...
- 解决Springboot项目打成jar包后获取resources目录下的文件失败的问题
前几天在项目读取resources目录下的文件时碰到一个小坑,明明在本地是可以正常运行的,但是一发到测试环境就报错了,说找不到文件,报错信息是:class path resource [xxxx] c ...
- iis7以上 ssl 证书导入
证书导入 开始 -〉运行 -〉MMC: 启动控制台程序,选择菜单"文件"中的"添加/删除管理单元"-> "添加",从"可用的 ...