From 34981c30a78e8bbd7791131059a9210f9928b62c Mon Sep 17 00:00:00 2001
From: 刘光辉 <347230014@qq.com>
Date: 星期四, 17 九月 2026 09:24:09 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into master
---
jnpf-dms/jnpf-dms-biz/src/main/java/jnpf/dmsPermission/DmsSubjectResolver.java | 37 +++++++++++++++++++++++++++++++++++++
1 files changed, 37 insertions(+), 0 deletions(-)
diff --git a/jnpf-dms/jnpf-dms-biz/src/main/java/jnpf/dmsPermission/DmsSubjectResolver.java b/jnpf-dms/jnpf-dms-biz/src/main/java/jnpf/dmsPermission/DmsSubjectResolver.java
new file mode 100644
index 0000000..13dfce3
--- /dev/null
+++ b/jnpf-dms/jnpf-dms-biz/src/main/java/jnpf/dmsPermission/DmsSubjectResolver.java
@@ -0,0 +1,37 @@
+package jnpf.dmsPermission;
+
+import jnpf.base.UserInfo;
+import jnpf.dmsEntity.permission.model.DmsSubjectSet;
+import jnpf.permission.OrganizeApi;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Component;
+
+import java.util.Collections;
+import java.util.List;
+
+@Component
+@RequiredArgsConstructor
+public class DmsSubjectResolver {
+ private final OrganizeApi organizeApi;
+
+ public DmsSubjectSet resolve(UserInfo user) {
+ DmsSubjectSet subjects = new DmsSubjectSet();
+ subjects.setUserId(user.getUserId());
+ subjects.getDirectOrgIds().addAll(orEmpty(user.getOrganizeIds()));
+ subjects.getPositionIds().addAll(orEmpty(user.getPositionIds()));
+ subjects.getRoleIds().addAll(orEmpty(user.getRoleIds()));
+ subjects.getPlatformGroupIds().addAll(orEmpty(user.getGroupIds()));
+ subjects.getAncestorOrgIds().addAll(subjects.getDirectOrgIds());
+ for (String orgId : subjects.getDirectOrgIds()) {
+ List<String> ancestors = organizeApi.upWardRecursion(orgId);
+ if (ancestors != null) {
+ subjects.getAncestorOrgIds().addAll(ancestors);
+ }
+ }
+ return subjects;
+ }
+
+ private List<String> orEmpty(List<String> values) {
+ return values == null ? Collections.<String>emptyList() : values;
+ }
+}
--
Gitblit v1.8.0