From f4d592f3626f94117d8a4eb22176a28290931980 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期二, 26 五月 2026 18:51:54 +0800
Subject: [PATCH] 新增智能电表、空调管理
---
server/system_service/src/main/java/com/doumee/config/cloudfilter/LoginHandlerInterceptor.java | 33 +++++++++++++++++++++++++--------
1 files changed, 25 insertions(+), 8 deletions(-)
diff --git a/server/system_service/src/main/java/com/doumee/config/cloudfilter/LoginHandlerInterceptor.java b/server/system_service/src/main/java/com/doumee/config/cloudfilter/LoginHandlerInterceptor.java
index 428da3f..abd19e5 100644
--- a/server/system_service/src/main/java/com/doumee/config/cloudfilter/LoginHandlerInterceptor.java
+++ b/server/system_service/src/main/java/com/doumee/config/cloudfilter/LoginHandlerInterceptor.java
@@ -27,6 +27,9 @@
public class LoginHandlerInterceptor implements HandlerInterceptor {
+ /** 涓庡墠绔� BasePage.adminCode 涓�鑷达紝瓒呯骇绠$悊鍛樿烦杩囨帴鍙f潈闄愮爜鏍¢獙 */
+ private static final String ADMIN_ROLE_CODE = "admin";
+
private RedisTemplate<String,Object> stringRedisTemplate;
@@ -55,21 +58,23 @@
LoginUserInfo user = checkLogin(token);
if (handlerMethod.hasMethodAnnotation(CloudRequiredPermission.class)) {
CloudRequiredPermission p = handlerMethod.getMethodAnnotation(CloudRequiredPermission.class);
- if(p.value()!=null && p.value().length>0){
+ if (p.value() != null && p.value().length > 0 && !isAdminUser(user)) {
boolean hasPermission = false;
- for(String s :p.value()){
- if(user.getPermissions()!=null){
- for(String t :user.getPermissions()){
- if(StringUtils.equals(t,s)){
+ for (String s : p.value()) {
+ if (user.getPermissions() != null) {
+ for (String t : user.getPermissions()) {
+ if (StringUtils.equals(t, s)) {
hasPermission = true;
break;
}
}
}
+ if (hasPermission) {
+ break;
+ }
}
- if(!hasPermission) {
- //娌℃湁鎿嶄綔鏉冮檺
- throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"娌℃湁璇ユ搷浣滄潈闄�");
+ if (!hasPermission) {
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "娌℃湁璇ユ搷浣滄潈闄�");
}
}
}
@@ -118,6 +123,18 @@
return body;
}
+ private boolean isAdminUser(LoginUserInfo user) {
+ if (user == null || user.getRoles() == null) {
+ return false;
+ }
+ for (String role : user.getRoles()) {
+ if (StringUtils.equals(role, ADMIN_ROLE_CODE)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
private LoginUserInfo checkLogin(String token) {
if (token == null || token.isEmpty()) {
throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"鏈櫥褰�");
--
Gitblit v1.9.3