ofbiz权限判断语法整理/安全组

本文深入探讨了权限管理的基础概念,详细介绍了如何通过安全组进行用户权限分配,并提供了不同场景下的权限判断方法,包括ftl模板、脚本、服务调用及FORMS.xml配置。同时,列举了各类安全组的描述及其权限范围,覆盖从系统级到模块级的全面权限管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用户的权限都是以权限组来分配的:

相关的几个表如下:
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(&quot;CATALOG&quot;, &quot;_UPDATE&quot;, 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

财务 ACCTG_FUNCTNL_ADMIN 在财务管理中的全部操作。 accountingadmin


最后需要说明的一点是,我们在开发组件时,可以在component.xml中为组定指定base-permission.这里指定的应该是权限的名称,通过是组件同名的。而不安全组的名称。如果需要可以指定多种权限名称,相互之间采用“,”分开。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值