本文介绍一个简易实用的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登陆(该帐号拥有全部的权限,帐号信息应该预先写入数据库或者以配置文件方式放到类路径下):
首先是机构管理部分,这里可以编辑某个公司或者单位的组织结构:
然后进入用户管理部分,会有一个用户列表:
可以编辑用户的属性,设置其所属机构:
还可以为用户设定多个角色:
接着,再看看角色的列表:
可以为角色设定功能。该角色设定树的生成,在后继文章中会有介绍。
最后,在系统资源部分,可以进行功能模块树的编辑(和机构树的编辑一样)
点击编辑详细功能,可以为选中的结点设置具体功能:
配置妥当以后,当我们以一个普通用户登录,执行某个操作的时候,如果没有权限,系统会做出提示。关于用户的权限验证,后继会有介绍。
相关阐述请关注后继文章。
分享到:
相关推荐
是一个简易的ASP.NET系统,主要实现登录功能和两个模块信息的增删改查。 二、功能介绍 1、管理员信息管理:添加、修改、删除、查找用户信息,分页,添加,修改用户权限; 2、学生信息管理:添加、修改、删除、查找...
本文通过对现代企业信息化管理进行分析,根据商场信息化管理的实际需求,设计并实现了一个基于WEB技术的商场管理系统。该系统由七个功能模块组成,即:商品信息管理模块、客户信息管理模块、商品进货管理模块、商品...
通过对现代企业信息化管理进行分析,根据商场信息化管理的实际需求,设计并实现了一个基于WEB技术的商场管理系统。该系统由七个功能模块组成,即:商品信息管理模块、客户信息管理模块、商品进货管理模块、商品销售...
本文通过对现代企业信息化管理进行分析,根据商场信息化管理的实际需求,设计并实现了一个基于WEB技术的商场管理系统。该系统由七个功能模块组成,即:商品信息管理模块、客户信息管理模块、商品进货管理模块、商品...
Python-Web简易版学生信息管理系统项目代码及文档说明,主要使用flask框架和Bootstrap,内容样式等还有待调整。对学生信息进行管理,学生信息包括:专业,学号,姓名,性别,出生年月,籍贯,联系电话,宿舍号等。该...
创建后台数据库,然后用编写程序实现对数据库的操作,按照要求完成所有的功能和模块。 2. 设备管理信息系统主要功能 部门操作员和操作管理员首先需要注册并通过超级管理员的认证后,才能登录到系统中来,超级管理...
本文不仅叙述了该商场管理系统的设计过程,包括需求分析,系统架构的设计,以及功能模块的划分等,而且详尽叙述了各个功能模块的具体实现方法,包括如何在服务器端响应客户请求,如何进行相应的数据库访问、以及如何...
本文通过对现代企业信息化管理进行分析,根据商场信息化管理的实际需求,设计并实现了一个基于WEB技术的商场管理系统。该系统由七个功能模块组成,即:商品信息管理模块、客户信息管理模块、商品进货管理模块、商品...
学生选课系统实现了对教师、学生、课程的基本管理。系统对学生角色提供了个人信息查看、查看已选课程、选课和退选的功能;对教师提供查看个人信息查看、查看分配课程、选择他课程的学生的情况和期末对学生成绩进行...
温州天邦简易ERP企业管理系统(简称TBERP)是温州柳市电器行业信息化ASP平台开发与应用项目,2005年1月成功入选『国家863计划』于2007年3月顺利通过国家科委专家评审,属乐清科技局科技创新专项资助重点推广项目。...
这些项目源码还提供了丰富的功能模块和插件,支持用户管理、权限控制、数据可视化、电子支付、互动社交等特色功能。 通过使用这批ASP项目源码,开发人员可以快速搭建相应的Web应用程序,减少从头开始开发的时间和...
是一个简易的ASP.NET系统,主要实现登录功能和两个模块信息的增删改查。 二、功能介绍 1、管理员信息管理:添加、修改、删除、查找用户信息,添加,修改用户权限; 2、学生信息管理:添加、修改、删除、查找...
主要模块:选课信息管理,学生信息管理,教师信息管理,课程信息管理,修改密码。模块中包含增删改查 系统分三种用户:管理员,教师,学生。每个用户在各个模块中的权限不同 数据库:navicat
小虫新闻管理系统V1.0_xcnewsv1.0.rar是一款基于Java Server Pages (JSP)技术实现的简易新闻管理系统,旨在为用户提供一个便捷的新闻发布、管理和浏览平台。该系统集成了新闻内容的添加、编辑、删除和查询等基本功能...
后端框架采用了base(基础类库层)、bean(后台逻辑层)、dao(数据持久层)、web(view展示层)的四层结构,代码结构清晰,高度模块化设计,使得开发起来高效、实用、可靠,并且便于扩展和维护。 下面是该系统的...
6.管理员可定义管理权限。 7.新闻和产品支持无限级分类。 程序安装的必要条件: 服务器配置: 推荐配置:Windows 2000/2003+IIS 5.0/6.0或者更高版本 本系统需要服务器支持FSO(FileSystemObject),如果你...
模块化设计:将系统功能模块化,每个模块负责一类功能,方便扩展和维护。 Responsiveness:后台管理系统应当是响应式设计,能够适配不同设备屏幕大小,包括电脑、平板和手机等。 权限控制:根据用户角色设定不同的...
Coalesys PanelBar + R.a.d Treeview +Xml 构建的Asp.net 菜单和权限管理模块 突破屏蔽限制,自己的网站使劲弹新IE窗口 对页面SCROLLING的CSS不能生效原因 .Net 中IE使用WinForm控件的使用心得。 动态加载用户控件的...
Php web application manager 〖目的〗 鉴于tomcat提供了应用后台管理功能,而php中没有,所以开发这个小...这一简易应用为方便开发而开发,所以,大家可自由使用。欢迎使用和修改,有问题请联系: yiming_1983@qq.com.
这个是本人在学习web应用开发过程中记录,并加入自己的设计思想,其中的技术包括oracle数据库的访问、查询、增加、修改、删除,web页面的分页技术,web系统登录的权限控制技术,单一用户登录控制技术等,但是遗憾的...