角色权限管理改造方案


#   为什么需要角色

  1. 现有的权限方案
  2. .net后台权限管理

在后台类中配置,权限 = 一级菜单:二级菜单:三级菜单;

通过在view模板中判断是否有权限显示菜单

后端通过权限配置拦截url请求。

  1. Java端权限管理

现在只有项目菜单权限管理

通过类

  1. User {
  2. }

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: '课程资源'

}

]

}

]

}

  1. 兼容改造方案
  2. .net功能模块权限控制

    java后台开放一个接口让.net调用判断是否有权限(入参为资源编码)。.net需要配置请求服务跟资源编码的关系

    需求:java端增加接口判断该用户是否有权限,.net需要配置请求服务跟资源编码的关系

  3. 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对应的菜单。

需求:开发菜单显示页面

后端访问控制:

在控制器方法中注解资源编码,这样一个资源编码就可以控制多个控制器方法。

需求:对每个需要权限控制的请求注解

  1. 页面开发对应的java后端服务改造

需求:根据页面的具体请求开发相应的接口

  1. 前端页面开发
  1. 项目用户权限管理

    参考已有的.net后台页面,不保存用户信息中的账户信息跟备注信息。

  2. 项目角色权限管理

    参考已有的.net后台页面

  3. 系统用户权限管理

    参考已有的.net后台页面,在现有角色权限模型中增加真实姓名字段

  1. 系统角色权限管理

    参考已有的.net后台页面

role的更多相关文章

  1. 解决: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 ...

  2. html中role的作用

    role 是增强语义性,当现有的HTML标签不能充分表达语义性的时候,就可以借助role来说明. 通常这种情况出现在一些自定义的组件上,这样可增强组件的可访问性.可用性和可交互性. role的作用是描 ...

  3. jedis支持哨兵主从配置role为slave

    jedis功能强大,但是不能像nodejs一样指定从slave中读数据,使数据量读写量较大时读写分离,减少redis压力. 我们可以利用jedis中的方法封装一个类似于此的方法. github地址: ...

  4. RBAC中 permission , role, rule 的理解

    Role Based Access Control (RBAC)——基于角色的权限控制 permission e.g. creating posts, updating posts role A ro ...

  5. Security8:删除Role 和 User

    数据库的Role 和 User都是基于Specified DB的,在删除这些Principal之前,必须使用Use clause,切换到指定的DB中. sys.database_role_member ...

  6. 使用 fixed role 授予权限

    今天下午,Leader 发mail给我,要求授予某个User对数据库只读的权限. Step1,在SQL Server中为该用户创建一个Login和User,在创建User时,建立Login 和 Use ...

  7. ABP 初探 之User、Role、Permission数据库设计 (EntityFramework 继承的另一种使用方法)

    最近群里(134710707)的朋友都在讨论ABP源码,我把最近学习的内容记录下来,同时也分享给大家,希望正在研究ABP源码的朋友有一定帮助. 上篇介绍ABP的多语言,本篇主要介绍权限的数据库设计,用 ...

  8. 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 ...

  9. Hibernate加载数据失败failed to lazily initialize a collection of role

    在测试获取数据库中的数据或者在页面获取时,有时会遇到这样的错误提示: failed to lazily initialize a collection of role: com.exam.entity ...

  10. Windows Azure - Troubleshooting & Debugging: Role Recycling

    每年总会碰到几次Role Recycling,处理完记录下 :) 1. 和往常一样先排查系统日志,修复异常.> 没效果 :( 2. 排查Event Viewer中的Logs,没有发现比较奇怪Lo ...

随机推荐

  1. ChatGPT 问答

    Win32GUI编程时,创建窗口触发消息的顺序 在Win32 GUI编程中,创建窗口并显示到屏幕上时,系统会触发一系列的消息,这些消息可以用来完成窗口的初始化和其他相关的工作.下面是创建窗口触发消息的 ...

  2. Vue3从入门到精通(一)

    Vue3简介 Vue3是Vue.js的最新版本,于2020年9月18日正式发布.Vue3相比Vue2有很多改进和优化,包括但不限于: 更快的渲染速度:Vue3通过使用Proxy代理对象和优化虚拟DOM ...

  3. CentOS7环境编译python3.9版本pjsua

    环境:CentOS 7.6_x64 Python版本 :3.9.12 pjsip版本:2.13 一.背景描述 pjsip地址:https://www.pjsip.org/ GitHub地址:https ...

  4. [MAUI]弧形进度条与弧形滑块的交互实现

    @ 目录 弧形基类 定义 绘制弧 弧形进度条(ProgressBar) 添加动画 宽度补偿 文本 弧形滑块(Slider) 创建控制柄 拖动事件处理 项目地址 进度条(ProgressBar)用于展示 ...

  5. 互动无极限:在线免费ChatGPT聊天工具-gpt4

    在现代社会中,聊天交流已变得越来越普遍,并且不断发展成新的形式和类型.而如今,通过使用人工智能技术,我们可以更加便捷地进行自然的对话交流.那么,提供在线免费使用的ChatGPT聊天工具是否可以满足各种 ...

  6. 深度Q网络:DQN项目实战CartPole-v0

    摘要:相比于Q learning,DQN本质上是为了适应更为复杂的环境,并且经过不断的改良迭代,到了Nature DQN(即Volodymyr Mnih发表的Nature论文)这里才算是基本完善. 本 ...

  7. 1.6 编写双管道ShellCode后门

    本文将介绍如何将CMD绑定到双向管道上,这是一种常用的黑客反弹技巧,可以让用户在命令行界面下与其他程序进行交互,我们将从创建管道.启动进程.传输数据等方面对这个功能进行详细讲解.此外,本文还将通过使用 ...

  8. Kubernetes(k8s)控制器(五):有状态应用StatefulSet

    目录 一.系统环境 二.前言 三.StatefulSet简介 四.有状态应用和无状态应用区别 五.StatefulSet 5.1 创建StatefulSet 5.2 scale扩展副本数 5.3 创建 ...

  9. 让golang程序生成coredump文件并进行调试

    今天讲讲怎么让golang程序生成coredump文件,并且进行调试的. 别看我写了不少golang的博客,其实我平时写c++的时间更多,所以也算和coredump是老相识了.core dump文件实 ...

  10. FFmpeg+SDL实时解码和渲染H264视频流

    前言 之前实现了Android手机摄像头数据的TCP实时传输,今天接着聊聊,如何在PC端把接收到的H264视频流实时解码并渲染出来.这次使用的语言是C++,框架有FFmpeg和SDL2. 解码 解码部 ...