您的位置:首页 > 其它

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配置文件与权限控制二级菜单的显示。

例如:订单一级菜单的子菜单(二级菜单)

<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,基本上可以解决。


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: