From f0af10084978c15005339f25f226480c4e25dc83 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?REBUILD=20=E4=BC=81=E4=B8=9A=E7=AE=A1=E7=90=86=E7=B3=BB?=
=?UTF-8?q?=E7=BB=9F?= <42044143+getrebuild@users.noreply.github.com>
Date: Fri, 7 Feb 2025 11:20:03 +0800
Subject: [PATCH] Fix 3.9.3 (#861)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* fix: 记录转换预览时不显示明细导入
* 3.9.3
* msg {NOW}
* be:手动备份成功后清除警告
* email
* be isSelf
* style
---
pom.xml | 2 +-
.../java/com/rebuild/core/Application.java | 4 +-
.../rebuild/core/privileges/UserHelper.java | 27 ++++----
.../general/transform/RecordTransfomer39.java | 65 ++++++++++++++-----
.../support/general/ContentWithFieldVars.java | 21 +++---
.../core/support/integration/SMSender.java | 21 ++++--
.../core/support/setup/DatabaseBackup.java | 2 +-
.../core/support/setup/DatafileBackup.java | 6 +-
.../java/com/rebuild/web/BaseController.java | 6 +-
.../web/admin/ConfigurationController.java | 3 +
.../metadata/ClassificationController.java | 2 +-
.../commons/BarCodeGeneratorController.java | 2 +-
.../rebuild/web/commons/FileDownloader.java | 2 +-
.../rebuild/web/commons/MetadataGetting.java | 2 +-
.../web/feeds/AnnouncementController.java | 2 +-
.../web/feeds/FeedsListController.java | 2 +-
.../web/general/GeneralListController.java | 2 +-
.../web/general/GeneralModelController.java | 41 +-----------
.../notification/NotificationController.java | 2 +-
.../web/user/UserSettingsController.java | 2 +-
.../web/user/signup/SignUpController.java | 3 +-
.../web/admin/metadata/list-stats.html | 3 +
.../web/assets/js/metadata/list-stats.js | 4 +-
.../web/assets/js/metadata/picklist-editor.js | 10 +--
24 files changed, 130 insertions(+), 106 deletions(-)
diff --git a/pom.xml b/pom.xml
index 7b5dd34c4..51487d96f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -10,7 +10,7 @@
com.rebuild
rebuild
- 3.9.2
+ 3.9.3
rebuild
Building your business-systems freely!
https://getrebuild.com/
diff --git a/src/main/java/com/rebuild/core/Application.java b/src/main/java/com/rebuild/core/Application.java
index 3523df0be..46b1b5188 100644
--- a/src/main/java/com/rebuild/core/Application.java
+++ b/src/main/java/com/rebuild/core/Application.java
@@ -74,11 +74,11 @@ public class Application implements ApplicationListener
/**
* Rebuild Version
*/
- public static final String VER = "3.9.2";
+ public static final String VER = "3.9.3";
/**
* Rebuild Build [MAJOR]{1}[MINOR]{2}[PATCH]{2}[BUILD]{2}
*/
- public static final int BUILD = 3090207;
+ public static final int BUILD = 3090308;
static {
// Driver for DB
diff --git a/src/main/java/com/rebuild/core/privileges/UserHelper.java b/src/main/java/com/rebuild/core/privileges/UserHelper.java
index 57a040bb4..2d37a8430 100644
--- a/src/main/java/com/rebuild/core/privileges/UserHelper.java
+++ b/src/main/java/com/rebuild/core/privileges/UserHelper.java
@@ -65,7 +65,7 @@ public class UserHelper {
try {
return Application.getUserStore().getUser(userId).isAdmin();
} catch (NoMemberFoundException ex) {
- log.error("No User found : " + userId);
+ log.error("No User found : {}", userId);
}
return false;
}
@@ -100,7 +100,7 @@ public class UserHelper {
}
} catch (NoMemberFoundException ex) {
- log.error("No bizz found : " + bizzId);
+ log.error("No bizz found : {}", bizzId);
}
return false;
}
@@ -460,16 +460,21 @@ public class UserHelper {
* @return
*/
public static boolean isSelf(ID user, ID otherUserOrAnyRecordId) {
- ID createdBy = otherUserOrAnyRecordId;
- if (otherUserOrAnyRecordId.getEntityCode() != EntityHelper.User) {
- createdBy = getCreatedBy(otherUserOrAnyRecordId);
- if (createdBy == null) return false;
+ try {
+ ID createdBy = otherUserOrAnyRecordId;
+ if (otherUserOrAnyRecordId.getEntityCode() != EntityHelper.User) {
+ createdBy = getCreatedBy(otherUserOrAnyRecordId);
+ if (createdBy == null) return false;
+ }
+
+ if (createdBy.equals(user)) return true;
+
+ // 所有管理员被视为同一用户
+ return isAdmin(createdBy) && isAdmin(user);
+ } catch (Exception ex) {
+ log.warn("Check isSelf error : {}, {}", user, otherUserOrAnyRecordId, ex);
+ return false;
}
-
- if (createdBy.equals(user)) return true;
-
- // 所有管理员被视为同一用户
- return isAdmin(createdBy) && isAdmin(user);
}
private static ID getCreatedBy(ID anyRecordId) {
diff --git a/src/main/java/com/rebuild/core/service/general/transform/RecordTransfomer39.java b/src/main/java/com/rebuild/core/service/general/transform/RecordTransfomer39.java
index 56187f6c3..70cd9a08e 100644
--- a/src/main/java/com/rebuild/core/service/general/transform/RecordTransfomer39.java
+++ b/src/main/java/com/rebuild/core/service/general/transform/RecordTransfomer39.java
@@ -21,14 +21,18 @@ import com.rebuild.core.configuration.general.FormsBuilderContextHolder;
import com.rebuild.core.configuration.general.TransformManager;
import com.rebuild.core.metadata.EntityHelper;
import com.rebuild.core.metadata.MetadataHelper;
+import com.rebuild.core.metadata.easymeta.EasyMetaFactory;
import com.rebuild.core.service.general.GeneralEntityService;
import com.rebuild.core.service.query.QueryHelper;
import com.rebuild.core.support.CommonsLog;
import lombok.extern.slf4j.Slf4j;
+import java.util.ArrayList;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
+import java.util.Set;
/**
* @author Zixin
@@ -175,6 +179,12 @@ public class RecordTransfomer39 extends RecordTransfomer37 {
}
((JSONObject) formModel).put(GeneralEntityService.HAS_DETAILS, formModelDetailsMap);
+
+ // 明细导入
+ if (targetEntity.getDetailEntity() != null) {
+ ((JSONObject) formModel).put("detailImports", buildDetailImports39(targetEntity));
+ }
+
return formModel;
}
@@ -190,21 +200,6 @@ public class RecordTransfomer39 extends RecordTransfomer37 {
transTargetRecord.removeValue(EntityHelper.OwningUser);
transTargetRecord.removeValue(EntityHelper.OwningDept);
}
-
-// if (isPreview) {
-// Record existsRecordSnap = Application.getQueryFactory().recordNoFilter(targetExistsRecordId);
-// for (Field field : existsRecordSnap.getEntity().getFields()) {
-// EasyField easyField = EasyMetaFactory.valueOf(field);
-// if (MetadataHelper.isCommonsField(field) || easyField.getDisplayType() == DisplayType.SERIES) {
-// if (field.getType() == FieldType.PRIMARY) continue;
-//
-// String fieldName = field.getName();
-// if (EntityHelper.AutoId.equals(fieldName) || EntityHelper.QuickCode.equals(fieldName)) continue;
-//
-// transTargetRecord.setObjectValue(fieldName, existsRecordSnap.getObjectValue(fieldName));
-// }
-// }
-// }
}
// 获取主记录(如果是明细的话)
@@ -215,4 +210,44 @@ public class RecordTransfomer39 extends RecordTransfomer37 {
}
return null;
}
+
+ // ~~
+
+ /**
+ * @param mainEntity
+ * @return
+ */
+ public static List