角色权限管理改造方案


#   为什么需要角色

  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. Linux 大页内存 Huge Pages 虚拟内存

    Linux为什么要有大页内存?为什么DPDK要求必须要设置大页内存?这都是由系统架构决定的,系统架构发展到现在,又是在原来的基础上一点点演变的.一开始为了解决一个问题,大家设计了一个很好的方案,随着事 ...

  2. 玩转服务器之数据传输篇:如何快速搭建FTP文件共享服务器

    FTP 文件共享服务器介绍 FTP服务(File Transfer Protocol,FTP)是最早应用于主机之间数据传输的基本服务之一,是目前使用最广泛的文件传送协议.FTP文件共享服务器在日常办公 ...

  3. 解决element-ui下拉框数据过多,导致页面卡顿问题与本地分页功能实现

    效果 前情提要: 最近使用element-ui开发的一个页面,在打开的时候占用cpu非常高,有时候都能达到90%↑.在调试时发现其中一个下拉框的接口返回2k↑的数据.本着有问题问百度的精神,看到主要的 ...

  4. 【Ubuntu22.04】配置静态IP地址和FTP服务

    ## 一.配置静态IP 1. 使用命令`ip a`查看当前网卡名称,Ubuntu22.04默认网卡为ens33: ![](https://img2023.cnblogs.com/blog/308121 ...

  5. 天下苦 Spring 久矣,Solon v2.3.3 发布

    Solon 是什么框架? 一个,Java 新的生态型应用开发框架.它从零开始构建,有自己的标准规范与开放生态(全球第二级别的生态).与其他框架相比,它解决了两个重要的痛点:启动慢,费资源. 解决痛点? ...

  6. Nginx+php关联

    nginx配置php选项,解除对IIS.Apache的php环境依赖 php.ini配置 取消extension_dir注释 取消cgi.fix_pathinfo注释 nginx.conf配置 取消 ...

  7. 「学习笔记」KMP 算法

    前置知识 前缀 是指从串首开始到某个位置 \(i\) 结束的一个特殊子串. 真前缀 指除了 \(S\) 本身的 \(S\) 的前缀. 举例来说, 字符串 abcabeda 的所有前缀为 {a, ab, ...

  8. 数据库连接池之c3p0-0.9.1.2,16年的古董,发生连接泄露怎么查(一)

    背景 这篇文章是写给有缘人的,为什么这么说呢,因为本篇主要讲讲数据库连接池之c3p0-0.9.1.2版本. 年轻的朋友,可能没怎么听过c3p0了,或者也仅限于听说,这都很正常,因为c3p0算是200几 ...

  9. 【技术积累】Mysql中的SQL语言【技术篇】【三】

    聚合函数 SUM函数 在MySQL中,SUM函数是用于计算数值列的总和的聚合函数.它接受一个数值列作为参数,并返回该列中所有值的总和. 以下是一个使用SUM函数的示例: 假设我们有一个名为" ...

  10. PB从入坑到放弃(四)常用函数

    写在前面 这一期呢,来整理下PB 常用的函数,包括系统的和一些自己封装好的函数 一.字符串相关 1.1 Len函数 获取字符串长度 ① 语法 Len(string) ②参数 string-->s ...