我就舍得给分,100分求解,应该可以了吧,反正留着那么多分也不能兑成人民币,求教,谢谢!
货物管理
|-------出货管理
|-------进货管理
|-------库存管理
|-------滞货管理
运输管理
|-------发车管理
|-------配车管理
|-------购车管理 出货管理: A浏览 B增加 C修改 D删除
以上的图形是一个树形菜单,现要进行权限设计,如一个用户只能有 货物管理且货物管理只有
出货管理和进货管理这二种子菜单的选项,而且要根据相关的权限给 出货管理和进货管理分配
A浏览,C修改的权限,如何要设计这个权限的数据库表呢?求解。最好有分组的设计 。
货物管理
|-------出货管理
|-------进货管理
|-------库存管理
|-------滞货管理
运输管理
|-------发车管理
|-------配车管理
|-------购车管理 出货管理: A浏览 B增加 C修改 D删除
以上的图形是一个树形菜单,现要进行权限设计,如一个用户只能有 货物管理且货物管理只有
出货管理和进货管理这二种子菜单的选项,而且要根据相关的权限给 出货管理和进货管理分配
A浏览,C修改的权限,如何要设计这个权限的数据库表呢?求解。最好有分组的设计 。
角色可以对应权限,可以一对多。user----role
role----privilege你至少设置3个表,主要是根据你的逻辑定义好有多少种角色,每种角色对应哪些权限,然后再给用户设置对应的角色,您的问题应该就可以解决了。你应该也可以给200分的贴:)
一个是认证,一个是授权认证就是辨别用户的真伪
授权就是根据用户的角色给用户具体的权限,最基本的可以体现在页面上,比如你页面的显示,只显示有权限的操作;还有就是method层面的控制,没有权限的用户不可以操作对应的操作,进一步加强安全的控制。我到是建议你使用现成的一些安全框架,自己做考虑难免不是很全面。
在菜单显示时授权到页面,进去页面后在授权到按钮。
表结构:
user page pagebutton user-page user-pagebutton
最后还增加各usergroup
如果搂主有时间,下载 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增加]
角色表——一个角色包含若干授权表记录,一个授权表记录包含于若干角色中,多对多关系
用户表——用户与角色多对多关系
真正的权限系统没有那么简单的,如果到行记录,就无能为力了,好在你这个还不太复杂,
作到粗粒度就可以了,建议你参考下
http://blog.tom.com/blog/read.php?bloggerid=355106&blogid=67183
在角色与权限对照间建立普及加密。
用户登录关联日付管理表。
日付管理表内联角色表内联角色权限对照表。建立广级权控和针级权。广级权控--以部门为依托。
针级权--以角色为依托。WEB--结合AJAX时建立权限表链。
例如:1000100,1代表重要的某个功能可用或是组件可用。0则反之。