本年度新问题:给你100分,一个权限分配设计问题,会的请赐教,不会的请学习!
我就舍得给分,100分求解,应该可以了吧,反正留着那么多分也不能兑成人民币,求教,谢谢!
货物管理
|-------出货管理
|-------进货管理
|-------库存管理
|-------滞货管理
运输管理
|-------发车管理
|-------配车管理
|-------购车管理
出货管理: A浏览 B增加 C修改 D删除
以上的图形是一个树形菜单,现要进行权限设计,如一个用户只能有 货物管理且货物管理只有
出货管理和进货管理这二种子菜单的选项,而且要根据相关的权限给 出货管理和进货管理分配
A浏览,C修改的权限,如何要设计这个权限的数据库表呢?求解。最好有分组的设计 。
------解决方案--------------------用户对应的是角色,可以是多个角色
角色可以对应权限,可以一对多。
user----role
role----privilege
你至少设置3个表,主要是根据你的逻辑定义好有多少种角色,每种角色对应哪些权限,然后再给用户设置对应的角色,您的问题应该就可以解决了。
你应该也可以给200分的贴:)
------解决方案--------------------授权到按钮就可以了
在菜单显示时授权到页面,进去页面后在授权到按钮。
表结构:
user page pagebutton user-page user-pagebutton
最后还增加各usergroup
------解决方案--------------------可以加入组的概念。
学习。
------解决方案--------------------如果搂主对 Spring 比较熟悉的话,可以使用 acegi-security 来进行这方面的管理。
下载 acegi-security 以后,里面有几个简单的例子。
如果搂主有时间,下载 Appfuse 学习学习,里面有现成的 用户/角色/权限 的例子代码。
这个例子代码,就是使用 acegi-security 来进行权限管理的。
对于 acegi-security, 可以将权限的控制,设置在页面这个级别,以及Java类的方法上这个级别。
例如,只能浏览的角色,画面上是看不见 更新 按钮的。 即时你知道 更新 按钮的URL地址。 后台程序也不允许你调用 update 方法。
下面是一些 appfuse 中,关于 acegi-security 的配置 security.xml 的一些片断 (文件还是有点长的)。
这些是配置什么角色,能够访问什么页面。 ROLE_ANONYMOUS 可以看成是还没有登陆的用户。
/clickstreams.jsp*=admin
/flushCache.*=admin
/passwordHint.html*=ROLE_ANONYMOUS,admin,user
/reload.*=admin
/signup.html*=ROLE_ANONYMOUS,admin,user
/users.html*=admin
这些配置,是定义了,只有 admin 角色的用户,才能够执行 UserManager 这个类中的 getUsers 与 removeUser 方法。
com.test.service.UserManager.getUsers=admin
com.test.service.UserManager.removeUser=admin
------解决方案--------------------坐下学习
------解决方案--------------------站着学习。
------解决方案--------------------学习了
------解决方案--------------------货物管理
|-------出货管理
|-------进货管理
|-------库存管理
|-------滞货管理
运输管理
|-------发车管理
|-------配车管理
|-------购车管理
出货管理: A浏览 B增加 C修改 D删除
操作表——A浏览 B增加 C修改 D删除 ……
栏目表——出货管理 进货管理 ……
授权表——栏目表与操作表记录的组合 [出货管理-A浏览] [出货管理-B增加]
角色表——一个角色包含若干授权表记录,一个授权表记录包含于若干角色中,多对多关系
用户表——用户与角色多对多关系
------解决方案--------------------躺着学习
------解决方案--------------------趴着学习
------解决方案--------------------学习中,有本hibernate的书上好象有介绍权限管理
------解决方案--------------------边蹲边学
------解决方案--------------------学习学习
------解决方案--------------------学习一下~!
------解决方案--------------------学习一下....
------解决方案--------------------