mirror of
https://github.com/getrebuild/rebuild.git
synced 2024-09-20 15:35:55 +08:00
parent
7e72b52b0f
commit
39ab712324
2
pom.xml
2
pom.xml
|
@ -10,7 +10,7 @@
|
|||
</parent>
|
||||
<groupId>com.rebuild</groupId>
|
||||
<artifactId>rebuild</artifactId>
|
||||
<version>2.8.3</version>
|
||||
<version>2.8.4</version>
|
||||
<name>rebuild</name>
|
||||
<description>Building your business-systems freely!</description>
|
||||
<!-- UNCOMMENT USE TOMCAT -->
|
||||
|
|
|
@ -64,11 +64,11 @@ public class Application implements ApplicationListener<ApplicationStartedEvent>
|
|||
/**
|
||||
* Rebuild Version
|
||||
*/
|
||||
public static final String VER = "2.8.3";
|
||||
public static final String VER = "2.8.4";
|
||||
/**
|
||||
* Rebuild Build [MAJOR]{1}[MINOR]{2}[PATCH]{2}[BUILD]{2}
|
||||
*/
|
||||
public static final int BUILD = 2080308;
|
||||
public static final int BUILD = 2080408;
|
||||
|
||||
static {
|
||||
// Driver for DB
|
||||
|
|
|
@ -26,6 +26,7 @@ import com.rebuild.core.support.i18n.Language;
|
|||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.aopalliance.intercept.MethodInterceptor;
|
||||
import org.aopalliance.intercept.MethodInvocation;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
|
@ -131,9 +132,11 @@ public class PrivilegesGuardInterceptor implements MethodInterceptor, Guard {
|
|||
}
|
||||
|
||||
// 无权限操作
|
||||
if (!allowed && PrivilegesGuardContextHolder.getSkipGuardOnce() != null) {
|
||||
ID skipId;
|
||||
if (!allowed && (skipId = PrivilegesGuardContextHolder.getSkipGuardOnce()) != null) {
|
||||
allowed = true;
|
||||
log.warn("Allow no permission(" + action.getName() + ") passed once : " + recordId);
|
||||
log.warn("Allow no permission({}) passed once : {}",
|
||||
action.getName(), ObjectUtils.defaultIfNull(recordId, skipId));
|
||||
}
|
||||
|
||||
if (!allowed) {
|
||||
|
|
|
@ -20,6 +20,7 @@ import com.rebuild.core.metadata.easymeta.DisplayType;
|
|||
import com.rebuild.core.metadata.easymeta.EasyField;
|
||||
import com.rebuild.core.metadata.easymeta.EasyMetaFactory;
|
||||
import com.rebuild.core.metadata.impl.EasyFieldConfigProps;
|
||||
import com.rebuild.core.privileges.PrivilegesGuardContextHolder;
|
||||
import com.rebuild.core.privileges.UserService;
|
||||
import com.rebuild.core.service.general.OperatingContext;
|
||||
import com.rebuild.core.service.trigger.ActionContext;
|
||||
|
@ -35,8 +36,6 @@ import java.util.*;
|
|||
/**
|
||||
* 分组聚合
|
||||
*
|
||||
* FIXME 目标实体记录自动新建时不会触发业务规则,因为使用了 CommonService 创建
|
||||
*
|
||||
* @author devezhao
|
||||
* @since 2021/6/28
|
||||
*/
|
||||
|
@ -195,6 +194,7 @@ public class GroupAggregation extends FieldAggregation {
|
|||
|
||||
// 不必担心必填字段,必填只是前端约束
|
||||
// 还可以通过设置字段默认值来完成必填字段的自动填写
|
||||
// 0425 需要业务规则,譬如自动编号、默认值等
|
||||
|
||||
Record newTargetRecord = EntityHelper.forNew(targetEntity.getEntityCode(), UserService.SYSTEM_USER);
|
||||
for (Map.Entry<String, String> e : groupFieldsMapping.entrySet()) {
|
||||
|
@ -207,14 +207,13 @@ public class GroupAggregation extends FieldAggregation {
|
|||
}
|
||||
}
|
||||
|
||||
// // 若无权限可能抛出异常(无权新建)
|
||||
// if (allowNoPermissionUpdate) {
|
||||
// PrivilegesGuardContextHolder.setSkipGuard(PrivilegesGuardContextHolder.FOR_NEW_RECORD);
|
||||
// }
|
||||
// newTargetRecord = Application.getEntityService(targetEntity.getEntityCode()).create(newTargetRecord);
|
||||
|
||||
// FIXME 忽略业务规则新建
|
||||
newTargetRecord = Application.getCommonsService().create(newTargetRecord, false);
|
||||
// 强制新建
|
||||
PrivilegesGuardContextHolder.setSkipGuard(EntityHelper.UNSAVED_ID);
|
||||
try {
|
||||
Application.getEntityService(targetEntity.getEntityCode()).create(newTargetRecord);
|
||||
} finally {
|
||||
PrivilegesGuardContextHolder.getSkipGuardOnce();
|
||||
}
|
||||
|
||||
targetRecordId = newTargetRecord.getPrimary();
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue