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