菜单权限,按钮权限的设计及实现

最近,公司老大给了这个任务,功能差不多完成了,现将一些经过分享给大家!

------------------开始设计时-----------------

  1. 菜单权限的设计

思路:

  1. 5个表的建立:用户表、角色表、菜单表、用户角色表、角色菜单表
  2. 后台动态加载json数据给前台。   这里的json数据,就是菜单栏的数据(就是通过后台数据查询找出当前用户拥有哪些菜单)
  3. 用户(操作员、管理员、超级管理员)只能看到自己对应的菜单数据

思路:sql语句加上对应的where条件 ,来对查询到的所有数据做进一步的筛选。

实现步骤:

  1. 设计表结构,
  2. 依次往菜单表、角色表、用户表中加入数据,
  3. 根据页面需要的数据,设计webapi接口方法,
  4. 通过网页操作将数据加入角色菜单 rel_rolemenu、用户角色rel_userrole的关系表中

-----------------------功能完成后的表-------------------------------

用户表

角色表

菜单表

关系表

-------------------------开发过程中发现的问题------------------------------

1.  返回当前用户的菜单按钮数据

A方式   通过关系表查询 , 这种方式查询不方便 (如果用EF的导航属性的话,实现起来还是相对简洁些的) ,但是做数据修改的时候很方便 ,可以直接对关系表做操作。

B方式   通过存储的MenuIds去菜单表中做查询,这种方式查看查询方便,但是修改不方便,需要 在 用户更新角色数据、角色更新权限数据、权限数据更新时,去更新用户表里面的MenuIds值 很是繁琐

我采用的方式:由于个人比较懒,喜欢数据能够直观些,就把2种方式都采纳了!   但是个人建议,还是用第一种方式,不要弄复杂了,功能能实现就行!

2. 菜单表父子结构的数据

A方式     直接将表数据交给前端人员处理成树形结构

B方式     自己在后端处理这些数据,然后将处理的树形结构数据返回给前端人员,具体实现方法,我将在我的下一篇博客里写出来

原文地址:https://www.cnblogs.com/for-easy-fast/p/12101175.html

时间: 2024-10-16 11:33:21

菜单权限,按钮权限的设计及实现的相关文章

途牛原创|途牛无线权限系统的架构设计与实践

序 之前写过一篇大话权限中心的PHP架构之道,主要是从软件工程角度介绍,如何通过编码规范.依赖管理.数据源架构.事务处理.单元测试等技术,来保障权限系统的高可用,并未真正的涉及这套系统的架构. 今天准备从设计细节上分享一二. 望各位看官,心有“空杯”,带着“问题”一探究竟. 0. RBAC3 这里还是尤为的重要,因为他是整套系统设计的根基. 所以残忍的从上一篇中复制了一遍... RBAC认为权限授权实际上是Who.What.How的问题.在RBAC模型中,who.what.how构成了访问权限三

窗体按钮权限控制

1.概念介绍 窗体的按钮权限控制,主要是针对在同一个窗体下,某些按钮不想开放给某些人.比如:新增.修改.删除按钮只给管理员,普通人员就只有查看.导出功能. 如下图所示,可以看出图一有新增.修改.删除权限,图二则没有:          2.实现方法 同一个窗体下,想实现不同的登录人员按钮权限不一样.就需要先在项目管理,相关窗体的功能管理,把想控制的按钮,在权限控制里勾选.如下图所示: 在项目管理里设置好窗体想控制的按钮后,就到系统维护-角色管理.如果需要新增.修改.删除的权限,就选择那个角色,点

Winform开发常用控件之TreeView菜单导航和权限用法

TreeView一个很棒的控件,我们在做WEB开发时常常犯困的一个东东.当然这里介绍winform里面的用法唠. 先介绍几个属性吧,CheckBoxes设置为true的话树形节点前面会出现checkbox勾选框.ImageList绑定树形里面的图标(界面上放一个Imgelist控件,绑定上即可).ShowLines(树形展开时显示线条)等等 哦,这个方法好,this.MenutreeView.ExpandAll();即Treeview加载后全部展开. 下面先介绍一个简单的菜单用法 1.TreeV

系统权限控制——菜单级别的权限控制方案

系统如果有许多用户,有时候需要针对不同用户进行菜单级别的权限控制. 下面的数据库设计实现了菜单级别的控制,可以作为一个参考: 其中读取页面时,页面中的action从Menu表中读取,而在powerofaction表中存储权限Power表与Aciton的关系. 系统权限控制--菜单级别的权限控制方案

2、rbac组件 后台布局模板,权限粒度控制,权限按钮

1.后台布局管理 https://www.cnblogs.com/venicid/p/7772742.html#_label0 1.通用模板 overflow: auto; //在a和b模板中进行切换 a 模板 :左侧菜单跟随滚动条 b模板  左侧以及上不动 **** <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>

定时器的一些用法,项目按钮权限的添加

项目中需要为按钮添加权限,因为后台的特殊,正常来说可以进行对接口拦截数据,但是因为项目是在后面进行修改的,所以只能是前台进行处理 处理办法1 在菜单树中就获取到按钮的权限,因为按钮是相对菜单页面的,在加载菜单的时候页面的按钮其实也是知道的了,这种不知道为什么没有被采用,据说是后台项目跨域了,不好处理 处理办法2(目前采用的,这种虽然有点low的样子) 就是在前台处理,点击按钮的时候发送请求,处理的时候为了减轻服务器的压力,想到了一个简便的办法 方案一 :在页面加载之前就获得到所有按钮的权限,然后

mvc 按钮权限控制

需要开发一个按钮权限的控制,思路:拦截所有按钮路径,和用户拥有的3级按钮权限对比, 所有验证都一个方法解决,只需要修改js后的参数,参数就是按钮对应的权限码 如果有什么问题请提醒,谢谢! xml: <mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/**"/> <bean id="buttonInterceptor" class="sls.interce

AEAI DP按钮权限配置说明

1 背景概述 AEAI DP3.5版本以后支持对按钮权限进行灵活的管理配置,本文对配置过程进行详细说明,为相关使用人员提供指导和参考. 2 预期读者 数通畅联技术人员 AEAI DP开发平台使用人员 3 实现思路 在对应的工程的web.xml添加配置保证jsp页面标签的正确引入,在jsp页面中对应的按钮添加定义,使用管理员登录在功能管理—处理器列表中添加对应Handler以及按钮的定义,点击安全设置对不同的按钮进行权限配置. 4 实现步骤 4.1 web.xml配置 在web.xml添加如下配置

[置顶] Web用户的身份验证及WebApi权限验证流程的设计和实现

转发 http://blog.csdn.net/besley/article/details/8516894 [置顶] Web用户的身份验证及WebApi权限验证流程的设计和实现 2013-01-18 13:19 22755人阅读 评论(19) 收藏 举报  分类: Asp.net Web技术(9)  WebAPI(3)  MVC(6)  版权声明:本文为博主原创文章,未经博主允许不得转载. 前言:Web 用户的身份验证,及页面操作权限验证是B/S系统的基础功能,一个功能复杂的业务应用系统,通过

通用权限管理平台权限控制--按钮权限

通用权限管理系统的重点在于如何更好的控制按钮操作权限,在下结合自己的平台经验,在使用MVC的环境下,使用自定义MVC控件,并且结合系统的权限控制于一体,减少业务在权限方面的控制,使对按钮权限的控制更加简洁. 通用权限控制系统的权限用户控件实现以后,在实际使用中如下所示: @Html.Eap().Button().Id("btnAdd").Name("添加").Class("easyui-linkbutton").IconClass("i