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/DmsCurrentIdentity.java | 76 ++++++++++++++++++++++++++++++++++++++
1 files changed, 76 insertions(+), 0 deletions(-)
diff --git a/jnpf-dms/jnpf-dms-biz/src/main/java/jnpf/dmsPermission/DmsCurrentIdentity.java b/jnpf-dms/jnpf-dms-biz/src/main/java/jnpf/dmsPermission/DmsCurrentIdentity.java
new file mode 100644
index 0000000..86e83c1
--- /dev/null
+++ b/jnpf-dms/jnpf-dms-biz/src/main/java/jnpf/dmsPermission/DmsCurrentIdentity.java
@@ -0,0 +1,76 @@
+package jnpf.dmsPermission;
+
+import jnpf.base.UserInfo;
+import jnpf.constant.GlobalConst;
+import jnpf.permission.RoleApi;
+import jnpf.permission.entity.RoleEntity;
+import jnpf.util.UserProvider;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Component;
+
+import java.util.Collections;
+import java.util.List;
+
+@Component
+@RequiredArgsConstructor
+public class DmsCurrentIdentity {
+ private final RoleApi roleApi;
+ private final DmsPermissionProperties properties;
+
+ public UserInfo requireUser() {
+ UserInfo user = UserProvider.getUser();
+ if (user == null || isBlank(user.getUserId())) {
+ throw DmsPermissionException.of(DmsPermissionError.AUTH_CONTEXT_REQUIRED,
+ "缂哄皯鍙俊鐨勭粓绔敤鎴疯璇佷笂涓嬫枃");
+ }
+ return user;
+ }
+
+ public String tenantId() {
+ return tenantId(requireUser());
+ }
+
+ public String tenantId(UserInfo user) {
+ if (user == null || isBlank(user.getUserId())) {
+ throw DmsPermissionException.of(DmsPermissionError.AUTH_CONTEXT_REQUIRED,
+ "缂哄皯鍙俊鐨勭粓绔敤鎴疯璇佷笂涓嬫枃");
+ }
+ return isBlank(user.getTenantId()) ? GlobalConst.DEFAULT_TENANT_VALUE : user.getTenantId().trim();
+ }
+
+ public String userId() {
+ return requireUser().getUserId().trim();
+ }
+
+ public boolean isPermissionAdministrator() {
+ UserInfo user = requireUser();
+ if (Boolean.TRUE.equals(user.getIsAdministrator())) {
+ return true;
+ }
+ List<String> roleIds = user.getRoleIds() == null ? Collections.<String>emptyList() : user.getRoleIds();
+ if (roleIds.isEmpty()) {
+ return false;
+ }
+ List<RoleEntity> roles = roleApi.getListByIds(roleIds);
+ if (roles == null) {
+ return false;
+ }
+ for (RoleEntity role : roles) {
+ if (role != null && properties.getAdminRoleCode().equals(role.getEnCode())) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public void requirePermissionAdministrator() {
+ if (!isPermissionAdministrator()) {
+ throw DmsPermissionException.of(DmsPermissionError.ADMIN_REQUIRED,
+ "闇�瑕佺郴缁熺鐞嗗憳鎴� " + properties.getAdminRoleCode() + " 瑙掕壊");
+ }
+ }
+
+ private boolean isBlank(String value) {
+ return value == null || value.trim().isEmpty();
+ }
+}
--
Gitblit v1.8.0