用户的权限都是以权限组来分配的:
相关的几个表如下:
security_group
security_permission
security_group_permission
security_permission_auto_grant
user_login_security_group
系统中没有权限的定义,只有安全组的定义,权限都是系统初始化进去的。
1、ftl内用security.hasEntityPermission
<#if security.hasEntityPermission("PARTYMGR", "_CREATE", session)>
<li><a href="<@ofbizUrl>editPartyAttribute?partyId=${party.partyId}</@ofbizUrl>">${uiLabelMap.CommonCreateNew}</a></li>
</#if>
2、script 包内的simple-method内用 check-permission去判断权限
例如:
<check-permission permission="ACCOUNTING" action="_UPDATE">
<alt-permission permission="ACCOUNTING_ROLE" action="_UPDATE"/>
<fail-message message="Security Error: to run updateFixedAssetCalendar you must have the ACCOUNTING_UPDATE or ACCOUNTING_ADMIN permission, or the limited ACCOUNTING_ROLE_UPDATE permission"/>
</check-permission>
3、servicedef包内的service内用permission-service去判断权限
例如:
<permission-service service-name="contentManagerPermission" main-action="CREATE"/>
4、 *FORMS.xml内
(1)现在screen内去获取,以MAP形式,然后再form去判断
<actions>
<set field="tabButtonItem" value="FindTrainingApprovals"/>
<set field="titleProperty" value="PageTitleFindTrainingApprovals"/>
<service service-name="humanResManagerPermission" result-map="permResult">
<field-map field-name="mainAction" value="ADMIN"/>
</service>
<set field="hasAdminPermission" from-field="permResult.hasPermission"/>
<set field="loginPartyId" from-field="parameters.userLogin.partyId"/>
</actions>
以上是screen的action内定义的。
下面是在form内判断的:
<field name="approverId" use-when="!hasAdminPermission"><hidden value="${loginPartyId}"/></field>
(2)直接在form内以bsh形式去判断
例如use-when="${bsh:security.hasEntityPermission("CATALOG", "_UPDATE", session);}"
相关的几个表如下:
security_group
security_permission
security_group_permission
security_permission_auto_grant
user_login_security_group
系统中没有权限的定义,只有安全组的定义,权限都是系统初始化进去的。
1、ftl内用security.hasEntityPermission
<#if security.hasEntityPermission("PARTYMGR", "_CREATE", session)>
<li><a href="<@ofbizUrl>editPartyAttribute?partyId=${party.partyId}</@ofbizUrl>">${uiLabelMap.CommonCreateNew}</a></li>
</#if>
2、script 包内的simple-method内用 check-permission去判断权限
例如:
<check-permission permission="ACCOUNTING" action="_UPDATE">
<alt-permission permission="ACCOUNTING_ROLE" action="_UPDATE"/>
<fail-message message="Security Error: to run updateFixedAssetCalendar you must have the ACCOUNTING_UPDATE or ACCOUNTING_ADMIN permission, or the limited ACCOUNTING_ROLE_UPDATE permission"/>
</check-permission>
3、servicedef包内的service内用permission-service去判断权限
例如:
<permission-service service-name="contentManagerPermission" main-action="CREATE"/>
4、 *FORMS.xml内
(1)现在screen内去获取,以MAP形式,然后再form去判断
<actions>
<set field="tabButtonItem" value="FindTrainingApprovals"/>
<set field="titleProperty" value="PageTitleFindTrainingApprovals"/>
<service service-name="humanResManagerPermission" result-map="permResult">
<field-map field-name="mainAction" value="ADMIN"/>
</service>
<set field="hasAdminPermission" from-field="permResult.hasPermission"/>
<set field="loginPartyId" from-field="parameters.userLogin.partyId"/>
</actions>
以上是screen的action内定义的。
下面是在form内判断的:
<field name="approverId" use-when="!hasAdminPermission"><hidden value="${loginPartyId}"/></field>
(2)直接在form内以bsh形式去判断
例如use-when="${bsh:security.hasEntityPermission("CATALOG", "_UPDATE", session);}"
安全组标识 描述 用户
系统级别
BIZADMIN 全部商业应用程序权限组,具有全部商业应用程序管理权限,不是技术人员权限。 bizadmin
FLEXADMIN 缓存管理组,具有全部颗粒的权限。 flexadmin
FULLADMIN 完全管理组,具有全部通用权限。 DemoLeadOwner DemoLeadOwner1
blog_admin blog_editor
admin imageAdmin system
SECURITYADMIN 安全管理组,具有在会员管理中修改安全设置的全部权限
VIEWADMIN 演示管理组,具有全部浏览权限。 demoadmin ltdadmin ltdadmin1
产品 CATALOGADMIN 目录管理组,具有全部目录权限。
CATALOGADMIN_LTD 有限的目录管理组,具有有限的目录权限。
订单 ORDERADMIN 订单管理组,具有全部订单权限。
ORDERADMIN_LTD 受限的订单管理组,具有全部受限的订单权限。
ORDERENTRY 订单记录管理组;创建订单权限。 DemoRepStore
ORDERENTRY_ALL 全部店铺的订单记录管理组。不需要特别的角色。 DemoRepAll
ORDERPROC 管理组用于受限制的订单流程。
ORDERPURCH 具有采购权限的订单记录。 AcctBuyer DemoBuyer
ORDERSUPPLIER_LTD 有限的订单管理组用于供货商。 supplier
会员管理 PARTYADMIN 会员管理组,具有全部会员权限。
工作计划 WORKEFFORTADMIN WorkEffort Admin group, has all workeffort permissions.
WORKEFFORT_USER 人工服务用户组;全部受限的人工服务权限。
人力资源 HUMANRES_ADMIN 具有全部人力资源操作权限
HUMANRES_APPROVER who will approve the internal job posting application. demoapprover
HUMANRES_EMPLOYEE all the employees who want to apply for internal Job Posting. demoemployee
文档内容 COMPDOCADMIN 内容文档管理组,全部权限。 approver
CONTENT_USER 内容用户组;全部有限的内容权限。 bigal madmax
IMAGEADMIN Image Management Admin. imageAdmin
IMAGEAPPROVE Image Management Approve imageApprove
IMAGEUPLOAD Image Management Upload. imageUpload
系统级别
BIZADMIN 全部商业应用程序权限组,具有全部商业应用程序管理权限,不是技术人员权限。 bizadmin
FLEXADMIN 缓存管理组,具有全部颗粒的权限。 flexadmin
FULLADMIN 完全管理组,具有全部通用权限。 DemoLeadOwner DemoLeadOwner1
blog_admin blog_editor
admin imageAdmin system
SECURITYADMIN 安全管理组,具有在会员管理中修改安全设置的全部权限
VIEWADMIN 演示管理组,具有全部浏览权限。 demoadmin ltdadmin ltdadmin1
模块级别
产品 CATALOGADMIN 目录管理组,具有全部目录权限。
CATALOGADMIN_LTD 有限的目录管理组,具有有限的目录权限。
订单 ORDERADMIN 订单管理组,具有全部订单权限。
ORDERADMIN_LTD 受限的订单管理组,具有全部受限的订单权限。
ORDERENTRY 订单记录管理组;创建订单权限。 DemoRepStore
ORDERENTRY_ALL 全部店铺的订单记录管理组。不需要特别的角色。 DemoRepAll
ORDERPROC 管理组用于受限制的订单流程。
ORDERPURCH 具有采购权限的订单记录。 AcctBuyer DemoBuyer
ORDERSUPPLIER_LTD 有限的订单管理组用于供货商。 supplier
会员管理 PARTYADMIN 会员管理组,具有全部会员权限。
工作计划 WORKEFFORTADMIN WorkEffort Admin group, has all workeffort permissions.
WORKEFFORT_USER 人工服务用户组;全部受限的人工服务权限。
人力资源 HUMANRES_ADMIN 具有全部人力资源操作权限
HUMANRES_APPROVER who will approve the internal job posting application. demoapprover
HUMANRES_EMPLOYEE all the employees who want to apply for internal Job Posting. demoemployee
文档内容 COMPDOCADMIN 内容文档管理组,全部权限。 approver
CONTENT_USER 内容用户组;全部有限的内容权限。 bigal madmax
IMAGEADMIN Image Management Admin. imageAdmin
IMAGEAPPROVE Image Management Approve imageApprove
IMAGEUPLOAD Image Management Upload. imageUpload
财务 ACCTG_FUNCTNL_ADMIN 在财务管理中的全部操作。 accountingadmin
最后需要说明的一点是,我们在开发组件时,可以在component.xml中为组定指定base-permission.这里指定的应该是权限的名称,通过是组件同名的。而不安全组的名称。如果需要可以指定多种权限名称,相互之间采用“,”分开。