如果 我想 让 一个系统
分 三级 用户 超级管理员
管理员 和 普通 用户
超级管理员能对 管理员 ,普通用户 进行 添删改查
管理员 能对 普通用户 进行 添删改查
用户 只能 查询
大概 就这样
怎么完成这样 的 权限管理
分 三级 用户 超级管理员
管理员 和 普通 用户
超级管理员能对 管理员 ,普通用户 进行 添删改查
管理员 能对 普通用户 进行 添删改查
用户 只能 查询
大概 就这样
怎么完成这样 的 权限管理
解决方案 »
- 下面是详细的相关文件内容
- %%%% Error Creating SessionFactory %%%%
- 对ThreadLocal实现HibernateSessionFactory的思考
- dom4j解析xml问题!
- 感谢版主,虽然你结掉了我的帖子,但你的答案最准确,单独感谢您算了。
- flush方法的疑问
- 请教上传文件的同时,表单里的参数不在可用的问题
- jsp 连 sql server 的问题
- 如何解决org.xml.sax.SAXParseException: The encoding "GBK" is not supported
- 在JAVA应用程序中可以连接访问数据库在JAVA小程序中则不能原因出在何处?(急!!)
- struts的html标签问题
- 急求一个C/S模式开发的例子
然后你去 点 一些 你权限的 地方 那个显示页面就出来
权限不够 这种的 页面
你们说的
我不是很理解
我上网 查的 一些也是 新建一张 权限的 表 然后 吧里面的 权限 给用户
但这样 如何 实现 用 什么技术 ?
网上的 技术 很多 我大多看了 都狠迷茫
我 SSH 其他的 一些 功能基本 都 知道 了 也会点
就差这个权限 管理了
1.建立数据库表,里面有5个字段一个事角色的id号,也就是你说的用户 超级管理员
管理员 和 普通用户这些角色的一个标识。
2.当用户登录的时候,能够获得登录用户的id号,相应的也可以获得它的权限值,比方说是超级管理员。
然后根据不同的权限显示不同的功能,假如他是一般管理员,他没有修改用户资料的权限,就让那个按钮变灰,也就是不可用。
3.应该注意这样一个问题,当某个用户没有登录的时候,他直接输入修改用户资料的网址,如http://localhost:8080/project/modify.jsp 不应该显示该页面的内容,也就是说此时应该显示一个页面,提示信息为你还没有登录,我做这个功能时是用filter过滤的。关于filter的用法,你可以网上搜一下很多。
另外想说明的是,你也可以用spring的aop进行权限控制。如果楼主还有什么不明白的话可以给我发邮件,邮箱:[email protected]
最高级的超级管理员,没人给他怎么办,只好在系统初始化的时候就在用户表中建立这么一个用户,所以用户表是肯定要有的(其实你之前的登陆也是要用到这张表的),但是怎么来知道这个用户有那些权限呢??
那就一定要有一个关联,这样由于权限是多项的而用户表中对一个用户存放多个权限是十分不好的(各尽其职),于是就产生了角色表,让一个用户与一个角色对应就产生了用户角色表,而让一个角色再与很多权限对应就产生了角色权限表,而对于所有的权限当然也要划分成一个权限表,这样对表的设计就完成了,有了表的结构。
而对于之前的用户有那些权限,那么这些权限一定是要在界面上由超级管理员来设定的,也就是由他来创建具有不同权限的角色,在新建立用户,为用户分配相应的角色,从而使不同的人有不同的权限,而之所以要放在session中,是因为你的每一次点击都要判断是否有权限,与其每一次都去查库还不如第一次放入session中,然后用到的时候再取就可以了。你只能仔细想一下了,没有实例,没办法展示,我就是想出来的
-- Create table
--用户表,存放用户信息
create table SYS_USR
(
USR_ID VARCHAR(20) not null,
USR_NAME VARCHAR(20),
USR_PWD VARCHAR(30),
USR_PWD_QUESTION VARCHAR(100),
USR_PWD_ANSWER VARCHAR(100),
USR_REMARK VARCHAR(255),
USR_DISABLE_DATE DATEtime,
USR_EMAIL VARCHAR(50) not null,
USR_CREATE_BY VARCHAR(20),
USR_CREATE_DATE DATEtime,
USR_UPDATE_BY VARCHAR(20),
USR_UPDATE_DATE DATEtime
)
-- Create table
--群组表,存放群组信息
create table SYS_GROUP
(
GROUP_ID VARCHAR(20) not null,
GROUP_NAME VARCHAR(50) not null,
GROUP_REMARK VARCHAR(255),
GROUP_CREATE_BY VARCHAR(20),
GROUP_CREATE_datetime datetime,
GROUP_UPdatetime_BY VARCHAR(20),
GROUP_UPdatetime_datetime datetime,
GROUP_DISABLE_datetime datetime
)
-- Create table
--用户群组表,存放哪些用户属于哪个群组
create table SYS_USR_GROUP
(
USR_ID VARCHAR(20) not null,
GROUP_ID VARCHAR(20) not null,
USR_GROUP_REMARK VARCHAR(255),
USR_GROUP_CREATE_BY VARCHAR(20),
USR_GROUPCREATE_datetime datetime,
USR_GROUPUPdatetime_BY VARCHAR(20),
USR_GROUPUPdatetime_datetime datetime
)
-- 功能表,这里可以放页面
create table SYS_FUNCTION
(
FUNC_ID VARCHAR(20) not null,
FUNC_NAME VARCHAR(20),
FUNC_FATHER_ID VARCHAR(20),
FUNC_DESC VARCHAR(100),
FUNC_REMARK VARCHAR(255),
FUNC_DISABLE_datetime datetime,
FUNC_CREATE_BY VARCHAR(20),
FUNC_CREATE_datetime datetime,
FUNC_UPdatetime_BY VARCHAR(20),
FUNC_UPdatetime_datetime datetime
)
-- Create table
-- 群组功能表,存放群组可以访问的页面
create table SYS_GROUP_FUNC
(
GROUP_ID VARCHAR(20) not null,
FUNC_ID VARCHAR(20) not null,
GROUP_FUNC_REMARK VARCHAR(255),
GROUP_FUNC_CREATE_BY VARCHAR(20),
GROUP_FUNC_CREATE_datetime datetime,
GROUP_FUNC_UPdatetime_BY VARCHAR(20),
GROUP_FUNC_UPdatetime_datetime datetime
)最后通过sql 语句串起来,可以得到一个用户属于哪个群组,这个群组又有访问哪些页面的权限,这样这个用户访问页面的权限就确定了.