`
Augustan
  • 浏览: 51635 次
  • 性别: Icon_minigender_1
  • 来自: 江蘇
社区版块
存档分类
最新评论

一个简易实用的web权限管理模块的应用与实现

    博客分类:
  • java
阅读更多

    本文介绍一个简易实用的web权限管理模块的应用与实现。

    先介绍数据模型和应用界面,后继对实现细节做选择性阐述。

    数据表关系如下:

   数据模型

 

      该图标明了登陆用户、角色、部门(机构)、用户组、角色和模块功能之间的关系。为方便起见,所有表都只保留必要字段。

      在本系统设计中,如下概念有着相对特殊的含义。

      一、用户(user): 系统的使用者。

      二、部门(org):体现了用户的行政关系,

      三、组(group) :是某相同职能的用户的集合,可以和用户一样与角色产生关联。设置组的目的是为了方便用户的角色分配,减少用户与角色的直接对应关系。用户的角色可以是其组角色和其直接分配的角色之合集。限于作者的时间和精力,组功能在该系统中没有具体的实现。
      四、角色(role):角色对应着某些功能(function)的集合,被分配一个角色意味着有权执行这些功能。角色表中的字段"functions"记录相关的功能id,id之间用逗号隔开。

      五、功能(function):系统的一个或者多个执行准入。

      那么如何表现“功能”以最终实现控制用户的每一个细微动作呢?假如不特定于某种架构,可以这么设计该表字段:

CREATE TABLE  `m2_function` (
  `FUNCTION_ID` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `NAME` varchar(50) NOT NULL,
  `FUNC_TREE_ID` int(10) unsigned NOT NULL,
  `RESOURCE` varchar(100) NOT NULL,
  `SUFFIX` varchar(50) NOT NULL,
  `DESCRIPTION` varchar(100) NOT NULL,
  `PARAMS` varchar(45) NOT NULL,
  PRIMARY KEY (`FUNCTION_ID`)
)  DEFAULT CHARSET=utf8;

    假定有三个web访问路径
  http://127.0.0.1:8080/app/sys/user.jsp?action=index&userid=1203 
  http://127.0.0.1:8080/app/sys/user.yuetong?action=add
  http://127.0.0.1:8080/app/sys/user.yuetong?action=update&userid=1203
     这三个访问点被人为的划分为两个功能准入(当然亦可以是一个或者三个),见下图     

   

     由此可知,“功能”是衡量用户准入的最小刻度。在用户访问某个地址的时候,我们可以通过解析URL对比他拥有的“功能”权限来实现权限管理。

     借助于某些架构或者设计思路,可以避免用户直接访问JSP页面,甚至全系统的访问地址都使用同一后缀,这种情况下可以省去SUFFIX字段。 本系统就是这种情况(JSP页面置于WEB-INF下,采用struts2架构)。

     六、功能模块树(function tree):功能的目录组织,起分类的作用。在为角色设定功能的时候,用户界面可以利用带选择框的js树。而这颗js树是后台的功能树表以及功能表的联合表现形式。功能模块树可以方便的与菜单树建立映射关系,限于作者的时间和精力,该系统并未实现菜单树。
    下面从实际应用入手做直观的介绍:
     用超级管理员帐号YT000登陆(该帐号拥有全部的权限,帐号信息应该预先写入数据库或者以配置文件方式放到类路径下):
     首先是机构管理部分,这里可以编辑某个公司或者单位的组织结构:

    

   然后进入用户管理部分,会有一个用户列表:


   可以编辑用户的属性,设置其所属机构:

 

 

   还可以为用户设定多个角色:

   接着,再看看角色的列表:


   可以为角色设定功能。该角色设定树的生成,在后继文章中会有介绍。

 

   最后,在系统资源部分,可以进行功能模块树的编辑(和机构树的编辑一样)

 

   点击编辑详细功能,可以为选中的结点设置具体功能:

 

 

      配置妥当以后,当我们以一个普通用户登录,执行某个操作的时候,如果没有权限,系统会做出提示。关于用户的权限验证,后继会有介绍。

 

     相关阐述请关注后继文章。

 

 

 

 

 

73
12
分享到:
评论
28 楼 娴静女生 2009-01-21  
哈哈,跟我手头的大同小异...

只是为什么不在表格显示的时候多加几个操作按钮?

编辑,增加,删除...


拜读了!
27 楼 namuzhen 2009-01-21  
forefront 2008-12-26   回复
数据表关系使用什么画的?

   用的Visual Paradigm 画图软件,其实和UML也差不多的功能,但效果比ROSE画出来的好多了,多年来我一直用的都是这个软件,不是免费的,是破解的。
26 楼 hbing110 2008-12-31  
顶,拿过来学习一下,
25 楼 guojinhua 2008-12-31  
不错。。。
24 楼 Augustan 2008-12-30  
权限修改后,能否动态加载?
该用户是否需要重新登录才能或许新访问权限表
hocus 写道

权限修改后,能否动态加载?该用户是否需要重新登录才能或许新访问权限表

目前没有动态加载的功能,需要重新登陆。
23 楼 hone033 2008-12-29  
谢谢博主分享,支持
22 楼 hocus 2008-12-29  
权限修改后,能否动态加载?
该用户是否需要重新登录才能或许新访问权限表
21 楼 zhangxu3739 2008-12-29  
顶了   学习 学习 ....
20 楼 clog 2008-12-29  
下了,学习一下。  
19 楼 hudong0178 2008-12-26  
学习了,和现在正在做的项目思想有点类似。。
18 楼 Augustan 2008-12-26  
forefront 写道

数据表关系使用什么画的?

power design
17 楼 forefront 2008-12-26  
数据表关系使用什么画的?
16 楼 Augustan 2008-12-26  
zwm 写道

谢谢分享.个人见解:   从PD中看应该是这样的一种关系:  用户-用户组-组角色-角色-功能 最终实现为系统用户分配相应的功能。在偶所参与的系统中,系统权限是采用的这样的思路:并集(除上面之外,并上 用户功能(直接为用户指定功能))比如有些用户可能功能点很单一,用户也很特别。见笑..

用户与功能直接挂钩确实增加了灵活性。
15 楼 zwm 2008-12-26  
谢谢分享.

个人见解:
   从PD中看应该是这样的一种关系:  用户-用户组-组角色-角色-功能
最终实现为系统用户分配相应的功能。

在偶所参与的系统中,系统权限是采用的这样的思路:
并集(除上面之外,并上 用户功能(直接为用户指定功能))

比如有些用户可能功能点很单一,用户也很特别。


见笑..
14 楼 yxtwang 2008-12-26  
有没有源码之类的,给我一份!
13 楼 yxtwang 2008-12-26  
跟上面的很像,手头的项目,是采用spring的acegi,对于模块开发者来说完全是透明的,
但不喜欢,感觉那是一层雾,不是自己控制的东西!
不是那么的董
12 楼 mineral 2008-12-25  
谢谢分享,实战性强。
11 楼 mogen9999 2008-12-25  
[url]http://www.cnblogs.com/mogen_yin/ [/url]我的博客 有机会交流下
10 楼 mogen9999 2008-12-25  
不错 简直就是太棒了
9 楼 jeasony 2008-12-25  
恩,什么时候来你的后续啊。。

相关推荐

    简易的学生管理系统ASP.NET

    是一个简易的ASP.NET系统,主要实现登录功能和两个模块信息的增删改查。 二、功能介绍 1、管理员信息管理:添加、修改、删除、查找用户信息,分页,添加,修改用户权限; 2、学生信息管理:添加、修改、删除、查找...

    基于WEB的商场管理系统的设计与实现

    本文通过对现代企业信息化管理进行分析,根据商场信息化管理的实际需求,设计并实现了一个基于WEB技术的商场管理系统。该系统由七个功能模块组成,即:商品信息管理模块、客户信息管理模块、商品进货管理模块、商品...

    ASP基于WEB的商场管理系统的设计与实现(源代码+参考文献).zip

    通过对现代企业信息化管理进行分析,根据商场信息化管理的实际需求,设计并实现了一个基于WEB技术的商场管理系统。该系统由七个功能模块组成,即:商品信息管理模块、客户信息管理模块、商品进货管理模块、商品销售...

    [计算机毕设]基于asp的商场管理系统设计与实现(源代码+项目报告).zip

    本文通过对现代企业信息化管理进行分析,根据商场信息化管理的实际需求,设计并实现了一个基于WEB技术的商场管理系统。该系统由七个功能模块组成,即:商品信息管理模块、客户信息管理模块、商品进货管理模块、商品...

    Python-Web简易版学生信息管理系统

    Python-Web简易版学生信息管理系统项目代码及文档说明,主要使用flask框架和Bootstrap,内容样式等还有待调整。对学生信息进行管理,学生信息包括:专业,学号,姓名,性别,出生年月,籍贯,联系电话,宿舍号等。该...

    基于JavaWeb的设备信息管理系统(源代码+sql文件)

    创建后台数据库,然后用编写程序实现对数据库的操作,按照要求完成所有的功能和模块。 2. 设备管理信息系统主要功能 部门操作员和操作管理员首先需要注册并通过超级管理员的认证后,才能登录到系统中来,超级管理...

    ASP基于WEB的商场管理系统的设计与实现(源代码+毕设文档).zip

    本文不仅叙述了该商场管理系统的设计过程,包括需求分析,系统架构的设计,以及功能模块的划分等,而且详尽叙述了各个功能模块的具体实现方法,包括如何在服务器端响应客户请求,如何进行相应的数据库访问、以及如何...

    基于ASP的商场管理系统(源代码+说明报告)

    本文通过对现代企业信息化管理进行分析,根据商场信息化管理的实际需求,设计并实现了一个基于WEB技术的商场管理系统。该系统由七个功能模块组成,即:商品信息管理模块、客户信息管理模块、商品进货管理模块、商品...

    课程设计-基于Java web的学生选课管理系统(源码+数据库+报告).zip

    学生选课系统实现了对教师、学生、课程的基本管理。系统对学生角色提供了个人信息查看、查看已选课程、选课和退选的功能;对教师提供查看个人信息查看、查看分配课程、选择他课程的学生的情况和期末对学生成绩进行...

    温州天邦简易ERP企业管理系统

     温州天邦简易ERP企业管理系统(简称TBERP)是温州柳市电器行业信息化ASP平台开发与应用项目,2005年1月成功入选『国家863计划』于2007年3月顺利通过国家科委专家评审,属乐清科技局科技创新专项资助重点推广项目。...

    ASP简易网络存储系统的设计与实现.zip

    这些项目源码还提供了丰富的功能模块和插件,支持用户管理、权限控制、数据可视化、电子支付、互动社交等特色功能。 通过使用这批ASP项目源码,开发人员可以快速搭建相应的Web应用程序,减少从头开始开发的时间和...

    asp.net实现的学生信息管理系统

    是一个简易的ASP.NET系统,主要实现登录功能和两个模块信息的增删改查。 二、功能介绍 1、管理员信息管理:添加、修改、删除、查找用户信息,添加,修改用户权限; 2、学生信息管理:添加、修改、删除、查找...

    基于Java Web学生选课管理系统.zip

    主要模块:选课信息管理,学生信息管理,教师信息管理,课程信息管理,修改密码。模块中包含增删改查 系统分三种用户:管理员,教师,学生。每个用户在各个模块中的权限不同 数据库:navicat

    新闻文章小虫新闻管理系统V1.0-xcnewsv1.0.rar

    小虫新闻管理系统V1.0_xcnewsv1.0.rar是一款基于Java Server Pages (JSP)技术实现的简易新闻管理系统,旨在为用户提供一个便捷的新闻发布、管理和浏览平台。该系统集成了新闻内容的添加、编辑、删除和查询等基本功能...

    基于python web开发的简易订单系统+源代码+文档说明

    后端框架采用了base(基础类库层)、bean(后台逻辑层)、dao(数据持久层)、web(view展示层)的四层结构,代码结构清晰,高度模块化设计,使得开发起来高效、实用、可靠,并且便于扩展和维护。 下面是该系统的...

    SsCMS简易企业网站管理系统 1.3.rar

    6.管理员可定义管理权限。 7.新闻和产品支持无限级分类。 程序安装的必要条件: 服务器配置: 推荐配置:Windows 2000/2003+IIS 5.0/6.0或者更高版本 本系统需要服务器支持FSO(FileSystemObject),如果你...

    【小程序素材】简易计算器.zip

    模块化设计:将系统功能模块化,每个模块负责一类功能,方便扩展和维护。 Responsiveness:后台管理系统应当是响应式设计,能够适配不同设备屏幕大小,包括电脑、平板和手机等。 权限控制:根据用户角色设定不同的...

    asp.net知识库

    Coalesys PanelBar + R.a.d Treeview +Xml 构建的Asp.net 菜单和权限管理模块 突破屏蔽限制,自己的网站使劲弹新IE窗口 对页面SCROLLING的CSS不能生效原因 .Net 中IE使用WinForm控件的使用心得。 动态加载用户控件的...

    php部署和管理

    Php web application manager 〖目的〗 鉴于tomcat提供了应用后台管理功能,而php中没有,所以开发这个小...这一简易应用为方便开发而开发,所以,大家可自由使用。欢迎使用和修改,有问题请联系: yiming_1983@qq.com.

    简易博客留言系统

    这个是本人在学习web应用开发过程中记录,并加入自己的设计思想,其中的技术包括oracle数据库的访问、查询、增加、修改、删除,web页面的分页技术,web系统登录的权限控制技术,单一用户登录控制技术等,但是遗憾的...

Global site tag (gtag.js) - Google Analytics