权限系统

系统设计——权限系统

前言:写了两篇关于DataGridView的文章:Winform系列——好用的DataGridview过滤控件(表格的高级搜索功能) 和 Winform系列——好看的DataGridView折叠控件。这章来记录下权限系统。关于权限系统,网上版本非常多,大都实用性不太高,大多数的系统就是因为分得太细了反而使系统错综复杂,甚至有看到有按照角色、部门、地区、用户四个方便分别去做权限分配的,我的个神,这样一来,要取一个用户的权限那个麻烦,当然并非说那些大神们封的东西不好,而是适用性的问题,对于某些大型公司的系统,对权限要求确实有那么高也说不定,但其实根据本人工作几年的经验来看,大部分的.Net系统其实对权限的要求并没有想象中的那么高。在这里记录下自己从头到尾设计和开发的一个权限系统,个人觉得对于基本的权限分配够用了。

1、系统介绍:说是系统,其实权限只是系统的一个模块,此系统主要就是根据角色来分配权限的,通过角色分别控制用户的菜单权限和菜单对应页面的按钮权限。

2、数据表设计:

(1)上图

(2)表的DDL语句:

 

(3) 表说明:权限模块总共就6张表,即部门表、用户表、角色表、用户角色表、菜单表、菜单角色表(包含按钮权限)。用户表和角色表之间的关系是通用的多对多的关系,没什么好说的。看看TB_MenuRole表,这个表用来存储角色的菜单权限和按钮权限,其中role_type取值为menu和button,如果是menu,则此行记录用于存储菜单权限,button_id为空;如果是button,则此行记录用于存储菜单下的某一个按钮的权限,menu_id为按钮所在的菜单id,button_id为对应的按钮id。还有一个问题就是按钮的id从哪里来?是否还应该有一个储存按钮ID的表呢?答案是不需要,后面会介绍。

3、效果图:先做的是一个CS的系统,后续还会做BS的。

3.1 权限模块主要分为4大页面:用户管理、角色管理、部门管理和菜单管理

3.2 用户管理页面:

“设置角色”操作:

3.3 角色管理页面:

“编辑权限”操作:

在“编辑权限”弹出框中点击“设置按钮操作”

角色管理页面的“管理成员”操作:

可以新增当前角色的用户,点击“新增”

3.4 部门管理页面:

3.5 菜单管理页面:

4、后台业务逻辑都是简单的增删改查,没什么好说的。前面说的关于按钮ID是否需要一张按钮表的问题,我们系统在处理方式是

在点击设置按操作的时候传递一个菜单url,然后在代码里面通过反射得到所有的按钮,然后勾选按钮后保存到数据库。注意一个页面的按钮的ID不会重复,所以通过这样可以取到唯一的按钮,而在数据表TB_MenuRole中保存的如果是按钮权限,是有保存Menu_Id的,所以不必担心不同页面的问题。这样设计的好处是当程序员在页面上面新增删除按钮后不用修改配置,通过反射即可加载页面的即时按钮个数。纯属个人设计,如果有问题,欢迎大侠们指正。

标签: 系统设计权限权限模块

时间: 2024-10-09 17:40:26

权限系统的相关文章

权限系统——初识

最近正在做高效平台中权限系统的项目,原来想的权限吗?简单,不就是判断一下这个用户存不存在,能看那些页面吗? 如果你是这么想的,那么我也只能说你应该好好的看看这篇文章,如果您对权限系统认识很深,那么就不需要再看了,因为这篇文章是帮助我自己理解的,当然也能帮助一下那些对权限系统一点认识也没有的朋友! 首先应该说说,什么是权限系统?它有什么作用? 权限管理系统,一般指根据系统设置的安全规则或者安全策略,用户可以访问而且只能访问自己被授权的资源,不多不少.权限管理系统几乎出现在任何系统里面,只要有用户和

架构设计分享之权限系统(看图说话)

前面一篇文章<最近架构随想>,我提到架构设计的一些构想,其实也是对之前项目经验的一些归纳及总结.今天我们就以权限系统作为切入点,谈一谈怎么设计权限系统以及怎么做到系统具有以下特性: Organized:如果系统组织比较好,可以起到事半功倍的效果. Encapsulated:对功能,结构,数据进行有效的封装,会使系统维护变得更加容易. Reusable:对常用功能以及组件进行有效的封装,可以使系统变得结构清晰且方便维护. Extensible:在设计系统的时候,如果很好的遵守OO的设计理念(OO

权限系统与RBAC模型概述

为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/SJQ. http://www.cnblogs.com/shijiaqi1066/p/3793894.html 0. 前言 一年前,我负责的一个项目中需要权限管理.当时凭着自己的逻辑设计出了一套权限管理模型,基本原理与RBAC非常相似,只是过于简陋.当时google了一些权限管理的资料,从中了解到早就有了RBAC这个东西.可惜一直没狠下心来学习. 更详细的RBAC模型非常复杂.本文只做了一些基础的理论性概述.

权限系统组织管理—具体设计说明书

前言: 上次聚哥让写具体设计文档.自己也写了自己模块的,认为写的挺好的.可是后来娥接手权限.我跟她说权限逻辑的时候,才发现非常多东西在具体设计文档中都没有写出来,所下面一个人接手的话,又要跑来问好多逻辑的问题.每一次都要做非常多反复性的工作.还有上次.做PB中期验收的毕业设计的时候,我没有下载到直接带着数据库的,可是材料中有数据库说明书,写的特别具体.所以我就依照别人的数据库说明书,搭建起来了,系统也成功跑起来了.这个时候认为这些文档特别的实用.所以,我想,别人看了我的具体设计说明书,是不是也可

七色花基本权限系统(3)- 利用EasyUI进行首页布局

EasyUI EasyUI是基于JQuery库的偏js轻型前端UI框架,不了解的读者可以参考官网地址. 在项目中增加JQuery和EasyUI,并在布局页中引用.为了结构清晰,方便日后维护和升级,可以在Scripts下创建jquery文件夹和jquery-easyui文件夹.这里选择1.11.0的JQuery和1.4.3的EasyUI. 特别说明一下,我已经修复了该版本的几个(只能通过修改源码来修正的)bug,并在updateLog.txt文件中做了修复记录. 图标库 再引入2套通用的图标库,以

简洁常用权限系统的设计与实现(七):一种错误的不可行的构造树的方法

前面介绍了4种方法(实质是3种),构造树. 在此,需要特别说明的是,那些都是成功的.漂亮的方法和案例 ,但实际上在解决问题的过程中,有很多其它的尝试.比如本篇介绍的方法,就是不可行的.  想说明一个道理,在走向成功的道路上,会经历很多不算太成功的事情. 我们在前面的例子中,用递归计算子结点的深度level.但实际上,我最开始想到的一种方法正好反过来了. 思路:最底层的节点level为1,如果当前节点有父结点,就把自己的level+1,递归把自己的父结点的level+1. // 计算所有节点的le

简洁常用权限系统的设计与实现(一):构造权限菜单树的N(N&gt;=4)种方法

权限系统,Web开发常见标准子系统之一.结合自己的一些思考和实践,从本篇开始权限系统的设计与实现之路. 最近,重构了项目的权限菜单构造过程,向前端返回json格式的权限树. 这一篇,只是大致介绍下这个问题,并给出4种方法的整体思路,后续再分别详细介绍这4种方法,再往后介绍完整的权限系统的设计与实现. 权限表的结构: acl.parent_acl, 最重要的就是这2个字段,有了这2个字段,就可以构造一棵树了. 前端需要的json格式: "data":[{ "acl":

TP支持菜单动态生成RBAC权限系统数据库结构设计方案

最简单基于RBAC权限系统数据库结构设计 包括如下几个表 1. 用户表 -- Table "t_user" DDL CREATE TABLE `t_user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(100) DEFAULT NULL, `password` varchar(100) DEFAULT NULL, `name` varchar(100) DEFAULT NULL, `status` int(11

主题:基于springMVC+springSecurity3.x+Mybaits3.x的权限系统,,

在平时的空闲时,自己做了一个权限管理系统,细粒度控制,支持控制到按扭!支持开源!分享知识! 很久之前就想把自己所学到的知识以及项目所用的技术集结起来,之前太忙了,一直没有动手做,这段时间有点闲,就把一个系统的基本要素功能做了出来,发现自己又懂得很多!其中也遇到不少困难和问题,但最终还是一一解决了!经验就是这样得来的!哈哈!我的博客有很多文章都是在项目中遇到问题以及解决办法写下来的!写得不好不要喷口水哈!如果觉得好的就 赞一下!谢谢! 以下的作品都是自己呕心沥血做出来的,源码中有很多注释,都是自己