ofbiz 权限设计及动态二级菜单解决方案
2014-04-17 20:16
393 查看
1、权限实体
security_group 权限组
security_permission 基础权限
security_group_permission 权限组与权限管理
security_permission_auto_grant 授权
user_login_security_group 权限组与登录用户关联
2、ofbiz-component webApp说明
ofbiz基础权限是配置到权限表内,而不是动态增加的,需要注意ofbiz配置权限的规则:
webApp控制
server="default-server"
location="webapp/hello"
web组件工程名称
mount-point="/hello"
app-bar-display="true"
是否增加到显示条
,必须为true,要不然不显示菜单
menu-name="main"
权限为主菜单,secondary
为二级菜单
base-permission="OFBTOOLS,HELLO"
//很重要,如果此组件需要有权限控制,这项必须加上,页面会检查当前登录用户是否有这个模块的权限
3、一级菜单权限配置
如果配置一级菜单权限,则权限为HELLO_VIEW或者HELLO_ADMIN,其中AMIN是所有操作的权限。
4、二级菜单权限配置
ofbiz中二级菜单不是动态增加或者减少的,而是通过xml配置文件与权限控制二级菜单的显示。
例如:订单一级菜单的子菜单(二级菜单)
如上,是判断order 的webapp的名称+_PURCHASE_VIEW,就是ORDERMGR__PURCHASE_VIEW 权限,这段代码会检查当前操作用户是否拥有此权限,ofbiz是通过这种方式控制子菜单(二级菜单)
由此,大家都大概明白了ofbiz应该怎么去控制三级菜单了吧,例如ORDERMGR_PURCHASE_SON_VIEW.
5、ofbiz功能权限
订单二级菜单下的创建权限,由此大家去推断功能权限怎么配置吧。
6、ofbiz拓展
说实话,这种二级菜单控制很蛋疼,或许好多项目都会改造此权限功能,那么,如果动态控制二级菜单,而不是用XML配置文件的方式。
那就使用代码动态加载吧。。
通过一级菜单的webapp名称,加上二级菜单标识,加上_VIEW,基本上可以解决。
security_group 权限组
security_permission 基础权限
security_group_permission 权限组与权限管理
security_permission_auto_grant 授权
user_login_security_group 权限组与登录用户关联
2、ofbiz-component webApp说明
ofbiz基础权限是配置到权限表内,而不是动态增加的,需要注意ofbiz配置权限的规则:
webApp控制
server="default-server"
location="webapp/hello"
web组件工程名称
mount-point="/hello"
app-bar-display="true"
是否增加到显示条
,必须为true,要不然不显示菜单
menu-name="main"
权限为主菜单,secondary
为二级菜单
base-permission="OFBTOOLS,HELLO"
//很重要,如果此组件需要有权限控制,这项必须加上,页面会检查当前登录用户是否有这个模块的权限
3、一级菜单权限配置
如果配置一级菜单权限,则权限为HELLO_VIEW或者HELLO_ADMIN,其中AMIN是所有操作的权限。
4、二级菜单权限配置
ofbiz中二级菜单不是动态增加或者减少的,而是通过xml配置文件与权限控制二级菜单的显示。
例如:订单一级菜单的子菜单(二级菜单)
<menu name="OrderAppBar" title="${uiLabelMap.OrderManager}" extends="CommonAppBarMenu" extends-resource="component://common/widget/CommonMenus.xml"> <menu-item name="request" title="${uiLabelMap.OrderRequests}"> <condition> <or> <if-has-permission permission="ORDERMGR" action="_VIEW"/> <if-has-permission permission="ORDERMGR" action="_PURCHASE_VIEW"/> </or> </condition> <link target="FindRequest"/> </menu-item> <menu-item name="quote" title="${uiLabelMap.OrderOrderQuotes}"> <condition> <or> <if-has-permission permission="ORDERMGR" action="_VIEW"/> <if-has-permission permission="ORDERMGR" action="_PURCHASE_VIEW"/> </or> </condition> <link target="FindQuote"/> </menu-item>
如上,是判断order 的webapp的名称+_PURCHASE_VIEW,就是ORDERMGR__PURCHASE_VIEW 权限,这段代码会检查当前操作用户是否拥有此权限,ofbiz是通过这种方式控制子菜单(二级菜单)
由此,大家都大概明白了ofbiz应该怎么去控制三级菜单了吧,例如ORDERMGR_PURCHASE_SON_VIEW.
5、ofbiz功能权限
<menu-item name="orderentry" title="${uiLabelMap.OrderOrderEntry}"> <condition> <or> <if-has-permission permission="ORDERMGR" action="_CREATE"/> <if-has-permission permission="ORDERMGR" action="_PURCHASE_CREATE"/> </or> </condition> <link target="orderentry" link-type="anchor"/> </menu-item>
订单二级菜单下的创建权限,由此大家去推断功能权限怎么配置吧。
6、ofbiz拓展
说实话,这种二级菜单控制很蛋疼,或许好多项目都会改造此权限功能,那么,如果动态控制二级菜单,而不是用XML配置文件的方式。
那就使用代码动态加载吧。。
通过一级菜单的webapp名称,加上二级菜单标识,加上_VIEW,基本上可以解决。
相关文章推荐
- 安装arcgis server10.2时发生错误error1935
- 面向对象设计原则
- oracle11gR2数据库安装成功(提醒安装前注意事项)
- 欧拉回路模板
- tableview textfield tableviewheader footer同时存在问题情况记录
- [APUE] 线程和fork
- CodeForces 245D Restoring Table
- 关于ASIHTTPRequest的使用总结
- 2014多益网络笔试题
- 能"干掉"苹果的中国"黑客"
- uiautomator中UiSelector学习笔记(3)
- week 2
- ACMjava简单枚举除法,分数拆分,双基回文数,最大乘积
- CvCreateImage函数说明
- 交互设计学习day1 之二 快速原型工具
- Ubuntu配置文件/etc/profile说明
- Flex——BlazeDS开发指南
- jsr cookbook 133
- Java 继承 Object包含服务
- 黑马程序员_学习笔记第11天——多线程1