档案管理权限管理
发布时间:2011-05-04 13:03:58
发布时间:2011-05-04 13:03:58
目录
1. 安全性 2
2. 权限管理 2
2.1 关于权限管理思路的说明: 2
2.2 权限管理的实现 2
2.2.1 用户管理 3
2.2.2 分配角色 3
2.2.3 给用户授权 4
2.2.4 角色管理 4
2.2.5 模块管理 5
3. 实例说明 5
当用户以正确的用户名登陆时,会将用户的相关信息放入session中,当用户对系统进行任何操作时都会判断session中的信息,如果session没有登录用户的信息,则不会给用户任何操作权限。此外,我们又在该系统做了更高一层的安全性防范,在用户注册时,我们在该系统中使用了MD5加密方式,即使用户进了数据库,盗看了用户信息的数据表,也无能为力,无法破解用户密码。数据库中用户信息的数据表如下图所示:
1、 用户(User)可以拥有多个角色(Role),角色可以被分配给多个用户
2、 权限的意思就是对某个资源的某个操作,现在规定:
a) 所谓资源,即系统的模块
b) 所谓操作,包括:增加、删除、修改、查询等操作
3、 权限管理系统的总体功能分为:授权与认证
4、 授权,指将权限授予角色或用户
a) 如果用户A拥有角色B、角色C,那么,缺省的情况下,用户A将拥有被分配给角色A和角色C的所有权限(即默认情况下,用户A继承其拥有的角色所具有的所有权限)
b) 如果用户拥有多个角色,那么用户的权限是这些角色权限的合集
c) 如果用户拥有多个角色,而且角色之间的授权有冲突(比如对同一个资源的同一个操作,一个角色为“允许”,另外一个角色为“不允许”),将以优先级别高的角色为准(所谓优先级别,也就是对于这个用户所拥有的角色而言,是有顺序的,同一个角色在不同的用户那里可能拥有不同的优先级)
d) 除了可以对角色进行授权外,也可以针对用户进行授权,也就是说,将权限授予用户。针对某个资源的所有操作,我们可以设置这些权限对用户来说是“继承”或“不继承”
i. 继承:意思是这些权限将使用其(即用户)所拥有的角色的权限,而不使用其(即用户)单独设置的权限
ii. 不继承:意思是这些权限将使用其单独设置的权限,而不使用其所拥有的角色的权限
5、 认证,指用户访问资源的某些操作时,根据授权,判断是否允许用户的访问
a) 在用户访问的时候,需要进行即时的判断(是否有权访问)
b) 应该提供查询的功能,可以查询某个用户所拥有的所有权限
本系统根据权限管理思路可将其分为模块管理、角色管理和用户管理三个模块
超级用户拥有用户管理模块的全部操作权限,可以给对用户进行增、删、改、查、分配角色、用户授权。
点击“查看”按钮时会显示用户的详细信息,包括用户名称,所属单位以及该用户所拥有的角色等。如下图所示:
当增加用户时,系统会对用户进行即时判断,如果数据库中存在该用户,则会显示提示信息,如下图所示:
当需要给用户分配角色时,点击分配角色按钮就会进入分配角色页面,在分配角色的同时首先会先查出该用户目前已拥有的角色,并提供了删除功能。该删除功能采用了Jquery的异步交互,当点击删除按钮时,在无需页面的刷新情况下在页面中自动删除某个角色并自动更新数据库。
当用户进行授权操作时本系统采用了dwr的异步交互技术,无需点击提交按钮,直接点击复选框即可更新数据库。
超级用户可以对角色进行增、删、改、查、分配角色、角色授权。
当点击角色授权按钮时进入角色授权页面,该页面同用户授权页面一样,也是采用了异步交互技术当点击复选框时自动更新数据库。
当增加模块时,同样会对模块名称,模块编号进行即时判断,如果数据库中存在则会弹出提示信息。当点击“所属父模块”时会动态查找数据库弹出现有的模块列表树,供用户进行选择。如下图所示:
现在我们要做的是:把单位管理模块针对用户“kj”进行权限设置,首先点击“用户管理”,进行用户管理页面,此页面会显示出所有注册过的用户,然后点击“kj”用户一行右侧的“用户授权”按钮,进入用户授权页面,此时会列出该用户对所有模块的操作权限,然后找到单位管理一栏,可以对它进行授权操作,(这里假如我们不用用户本身的权限,而是用它拥有的角色的操作权限)我们把该用户本身拥有的权限全部去掉并把“不继承”复选框对号按钮去掉,把“kj”用户有的角色“管理员”只赋于查看的权限,然后刷新页面,这是当点击单位管理按钮时,“kj”用户对于“单位管理”模块只有了查看的权限。
http://192.168.1.242:8080/dagl/home.do