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 ...
随机推荐
- this关键字理解
编译器对对象的加载步骤: (1)类名 (2)成员变量 (3)成员方法 即使定义类时,成员变量写在成员方法后面,加载对象时,也是先加载成员变量 当编译器识别方法时,会对成员方法改写,在所有方法里隐藏一个 ...
- 越小越好: Q8-Chat,在英特尔至强 CPU 上体验高效的生成式 AI
大语言模型 (LLM) 正在席卷整个机器学习世界.得益于其 transformer 架构,LLM 拥有从大量非结构化数据 (如文本.图像.视频或音频) 中学习的不可思议的能力.它们在 多种任务类型 上 ...
- Python连接es笔记三之es更新操作
本文首发于公众号:Hunter后端 原文链接:Python连接es笔记三之es更新操作 这一篇笔记介绍如何使用 Python 对数据进行更新操作. 对于 es 的更新的操作,不用到 Search() ...
- Bio+IT 生信科技爱好者知识库
欢迎来到 Bio+IT 生信科技爱好者知识库! 关于我们 "BioIT爱好者" 是一个专注于生物信息学和 IT 互联网技术的知识库平台,是一个集合了 Bio+IT 相关的数据分析. ...
- 三分钟免费将 Claude API 接入个人服务
首先我们介绍一下今天的主角 Claude Claude 是最近新开放的一款 AI 聊天机器人,是世界上最大的语言模型之一,比之前的一些模型如 GPT-3 要强大得多,因此 Claude 被认为是 Ch ...
- Python3.9安装
一.安装python3.9 链接:https://pan.baidu.com/s/1mDkgKt2KSoMrKVxesb76Pg?pwd=ma4n 提取码:ma4n --来自百度网盘超级会员V4的分享 ...
- 混沌演练状态下,如何降低应用的 MTTR(平均恢复时间)
在企业业务领域,锦礼是针对福利.营销.激励等员工采购场景的一站式解决方案,包含面向员工.会员等弹性激励SAAS平台.由于其直接面向公司全体员工,其服务的高可用尤其重要,本文将介绍锦礼商城大促前夕,通过 ...
- mybatis 部分符号需转译 及 IF如何正确判断单个数字字符
mybatis 部分符号需转译 及 IF如何正确判断单个数字字符 1.Mybatis 转译字符如下下法即可: oracle中的日期查询在mybatis中写法可以参考如下:注意提交时间的<号是用特 ...
- .NET写一个自己的Lambda表达式与表达式树
LambdaExpression继承Expression Expression又继承LambdaExpressio 所以,Expression与 Expression的区别在于:泛型类以静态类型的方法 ...
- [Java基础] ==和equals比较
==对比的是栈中的值,基本数据类型是变量值,引用类型是堆中内存对象的地址 equals:object中默认也是采用==比较,通常会重写 Object public boolean equals(Obj ...