remove @RequireGaoRole

This commit is contained in:
Timi
2026-08-12 11:06:48 +08:00
parent d555aad9ac
commit 6bc73414d9
7 changed files with 3 additions and 96 deletions
@@ -10,7 +10,6 @@ import com.imyeyu.api.annotation.EnableSettingInterceptor;
import com.imyeyu.api.annotation.RequestRateLimitInterceptor; import com.imyeyu.api.annotation.RequestRateLimitInterceptor;
import com.imyeyu.api.annotation.RequireCorePermissionInterceptor; import com.imyeyu.api.annotation.RequireCorePermissionInterceptor;
import com.imyeyu.api.modules.gao.annotation.RequireGaoPermissionInterceptor; import com.imyeyu.api.modules.gao.annotation.RequireGaoPermissionInterceptor;
import com.imyeyu.api.modules.gao.annotation.RequireGaoRoleInterceptor;
import com.imyeyu.api.modules.journal.util.JournalAPIInterceptor; import com.imyeyu.api.modules.journal.util.JournalAPIInterceptor;
import com.imyeyu.api.modules.system.util.SystemAPIInterceptor; import com.imyeyu.api.modules.system.util.SystemAPIInterceptor;
import com.imyeyu.spring.annotation.RequestBodyValueArgumentResolver; import com.imyeyu.spring.annotation.RequestBodyValueArgumentResolver;
@@ -42,7 +41,6 @@ public class WebConfig implements WebMvcConfigurer {
private final SystemAPIInterceptor systemAPIInterceptor; private final SystemAPIInterceptor systemAPIInterceptor;
private final JournalAPIInterceptor journalAPIInterceptor; private final JournalAPIInterceptor journalAPIInterceptor;
private final EnableSettingInterceptor enableSettingInterceptor; private final EnableSettingInterceptor enableSettingInterceptor;
private final RequireGaoRoleInterceptor requireGaoRoleInterceptor;
private final RequestRateLimitInterceptor requestRateLimitInterceptor; private final RequestRateLimitInterceptor requestRateLimitInterceptor;
private final RequireGaoPermissionInterceptor requireGaoPermissionInterceptor; private final RequireGaoPermissionInterceptor requireGaoPermissionInterceptor;
private final RequireCorePermissionInterceptor requireCorePermissionInterceptor; private final RequireCorePermissionInterceptor requireCorePermissionInterceptor;
@@ -58,7 +56,6 @@ public class WebConfig implements WebMvcConfigurer {
registry.addInterceptor(journalAPIInterceptor).addPathPatterns(JournalAPIInterceptor.PATH); registry.addInterceptor(journalAPIInterceptor).addPathPatterns(JournalAPIInterceptor.PATH);
registry.addInterceptor(enableSettingInterceptor).addPathPatterns("/**"); registry.addInterceptor(enableSettingInterceptor).addPathPatterns("/**");
registry.addInterceptor(requireCorePermissionInterceptor).addPathPatterns("/**"); registry.addInterceptor(requireCorePermissionInterceptor).addPathPatterns("/**");
registry.addInterceptor(requireGaoRoleInterceptor).addPathPatterns("/**");
registry.addInterceptor(requireGaoPermissionInterceptor).addPathPatterns("/**"); registry.addInterceptor(requireGaoPermissionInterceptor).addPathPatterns("/**");
registry.addInterceptor(requestRateLimitInterceptor).addPathPatterns("/**"); registry.addInterceptor(requestRateLimitInterceptor).addPathPatterns("/**");
} }
@@ -1,29 +0,0 @@
package com.imyeyu.api.modules.gao.annotation;
import com.imyeyu.api.bean.RoleMatchMode;
import com.imyeyu.api.modules.gao.bean.GaoRoleCode;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
///
/// 要求 GAO 模块角色
///
/// @author Codex
/// @since 2026-07-26
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface RequireGaoRole {
/// 所需角色
///
/// @return 角色列表
GaoRoleCode[] value();
/// 匹配模式
///
/// @return 匹配模式
RoleMatchMode mode() default RoleMatchMode.ALL;
}
@@ -1,50 +0,0 @@
package com.imyeyu.api.modules.gao.annotation;
import com.imyeyu.api.bean.ModuleCode;
import com.imyeyu.api.bean.RoleMatchMode;
import com.imyeyu.api.modules.gao.bean.GaoRoleCode;
import com.imyeyu.api.modules.user.service.RoleChecker;
import com.imyeyu.java.TimiJava;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.lang.NonNull;
import org.springframework.core.annotation.AnnotatedElementUtils;
import org.springframework.stereotype.Component;
import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.HandlerInterceptor;
///
/// GAO 角色注解处理器
///
/// @author Codex
/// @since 2026-07-27
@Component
public class RequireGaoRoleInterceptor implements HandlerInterceptor {
private final RoleChecker roleChecker;
public RequireGaoRoleInterceptor(RoleChecker roleChecker) {
this.roleChecker = roleChecker;
}
@Override
public boolean preHandle(@NonNull HttpServletRequest req, @NonNull HttpServletResponse resp, @NonNull Object handler) {
if (!(handler instanceof HandlerMethod handlerMethod)) {
return true;
}
RequireGaoRole annotation = handlerMethod.getMethodAnnotation(RequireGaoRole.class);
if (annotation == null) {
annotation = AnnotatedElementUtils.findMergedAnnotation(handlerMethod.getBeanType(), RequireGaoRole.class);
}
if (annotation == null || TimiJava.isEmpty(annotation.value())) {
return true;
}
String[] roleCodeList = java.util.Arrays.stream(annotation.value()).map(GaoRoleCode::name).toArray(String[]::new);
if (annotation.mode() == RoleMatchMode.ANY) {
roleChecker.checkAny(ModuleCode.GAO, roleCodeList);
} else {
roleChecker.checkAll(ModuleCode.GAO, roleCodeList);
}
return true;
}
}
@@ -1,8 +1,8 @@
package com.imyeyu.api.modules.gao.controller; package com.imyeyu.api.modules.gao.controller;
import com.imyeyu.api.annotation.RequireCorePermission;
import com.imyeyu.api.bean.CorePermissionCode;
import com.imyeyu.api.bean.ModuleCode; import com.imyeyu.api.bean.ModuleCode;
import com.imyeyu.api.modules.gao.annotation.RequireGaoRole;
import com.imyeyu.api.modules.gao.bean.GaoRoleCode;
import com.imyeyu.api.modules.user.entity.Role; import com.imyeyu.api.modules.user.entity.Role;
import com.imyeyu.api.modules.user.service.AuthorizationScopeService; import com.imyeyu.api.modules.user.service.AuthorizationScopeService;
import com.imyeyu.api.modules.user.service.UserLoginService; import com.imyeyu.api.modules.user.service.UserLoginService;
@@ -20,7 +20,6 @@ import java.util.List;
/// @author 夜雨 /// @author 夜雨
/// @since 2026-07-28 14:15 /// @since 2026-07-28 14:15
@RestController @RestController
@RequireGaoRole(GaoRoleCode.STORE_MANAGER)
@RequiredArgsConstructor @RequiredArgsConstructor
@RequestMapping("/gao/role") @RequestMapping("/gao/role")
public class GaoRoleController { public class GaoRoleController {
@@ -30,6 +29,7 @@ public class GaoRoleController {
@AOPLog @AOPLog
@RequestRateLimit @RequestRateLimit
@RequireCorePermission(CorePermissionCode.ROLE_READ)
@PostMapping("/available/list") @PostMapping("/available/list")
public List<Role> availableList() { public List<Role> availableList() {
return authorizationScopeService.listGrantableRole(userLoginService.getRequireLoginUserId(), ModuleCode.GAO); return authorizationScopeService.listGrantableRole(userLoginService.getRequireLoginUserId(), ModuleCode.GAO);
@@ -1,9 +1,7 @@
package com.imyeyu.api.modules.gao.controller; package com.imyeyu.api.modules.gao.controller;
import com.imyeyu.api.modules.gao.annotation.RequireGaoPermission; import com.imyeyu.api.modules.gao.annotation.RequireGaoPermission;
import com.imyeyu.api.modules.gao.annotation.RequireGaoRole;
import com.imyeyu.api.modules.gao.bean.GaoPermissionCode; import com.imyeyu.api.modules.gao.bean.GaoPermissionCode;
import com.imyeyu.api.modules.gao.bean.GaoRoleCode;
import com.imyeyu.api.modules.gao.entity.GaoStoreBusinessDay; import com.imyeyu.api.modules.gao.entity.GaoStoreBusinessDay;
import com.imyeyu.api.modules.gao.service.GaoStoreBusinessDayService; import com.imyeyu.api.modules.gao.service.GaoStoreBusinessDayService;
import com.imyeyu.spring.annotation.AOPLog; import com.imyeyu.spring.annotation.AOPLog;
@@ -1,9 +1,7 @@
package com.imyeyu.api.modules.gao.controller; package com.imyeyu.api.modules.gao.controller;
import com.imyeyu.api.modules.gao.annotation.RequireGaoPermission; import com.imyeyu.api.modules.gao.annotation.RequireGaoPermission;
import com.imyeyu.api.modules.gao.annotation.RequireGaoRole;
import com.imyeyu.api.modules.gao.bean.GaoPermissionCode; import com.imyeyu.api.modules.gao.bean.GaoPermissionCode;
import com.imyeyu.api.modules.gao.bean.GaoRoleCode;
import com.imyeyu.api.modules.gao.entity.GaoStore; import com.imyeyu.api.modules.gao.entity.GaoStore;
import com.imyeyu.api.modules.gao.service.GaoStoreService; import com.imyeyu.api.modules.gao.service.GaoStoreService;
import com.imyeyu.api.modules.user.service.UserLoginService; import com.imyeyu.api.modules.user.service.UserLoginService;
@@ -39,7 +37,6 @@ public class GaoStoreController {
private final UserLoginService userLoginService; private final UserLoginService userLoginService;
@AOPLog @AOPLog
@RequireGaoRole(GaoRoleCode.GLOBAL_MANAGER)
@RequestRateLimit @RequestRateLimit
@RequireGaoPermission(GaoPermissionCode.STORE_READ) @RequireGaoPermission(GaoPermissionCode.STORE_READ)
@PostMapping("/list") @PostMapping("/list")
@@ -48,7 +45,6 @@ public class GaoStoreController {
} }
@AOPLog @AOPLog
@RequireGaoRole(GaoRoleCode.STORE_MANAGER)
@RequestRateLimit @RequestRateLimit
@RequireGaoPermission(GaoPermissionCode.STORE_READ) @RequireGaoPermission(GaoPermissionCode.STORE_READ)
@PostMapping("/detail") @PostMapping("/detail")
@@ -66,7 +62,6 @@ public class GaoStoreController {
} }
@AOPLog @AOPLog
@RequireGaoRole(GaoRoleCode.STORE_MANAGER)
@RequestRateLimit @RequestRateLimit
@RequireGaoPermission(GaoPermissionCode.STORE_UPDATE) @RequireGaoPermission(GaoPermissionCode.STORE_UPDATE)
@PostMapping("/update") @PostMapping("/update")
@@ -75,7 +70,6 @@ public class GaoStoreController {
} }
@AOPLog @AOPLog
@RequireGaoRole(GaoRoleCode.GLOBAL_MANAGER)
@RequestRateLimit @RequestRateLimit
@RequireGaoPermission(GaoPermissionCode.STORE_DELETE) @RequireGaoPermission(GaoPermissionCode.STORE_DELETE)
@PostMapping("/delete") @PostMapping("/delete")
@@ -84,7 +78,6 @@ public class GaoStoreController {
} }
@AOPLog @AOPLog
@RequireGaoRole(GaoRoleCode.GLOBAL_MANAGER)
@RequestRateLimit @RequestRateLimit
@RequireGaoPermission(GaoPermissionCode.STORE_UPDATE) @RequireGaoPermission(GaoPermissionCode.STORE_UPDATE)
@PostMapping("/sort") @PostMapping("/sort")
@@ -5,7 +5,6 @@ import com.imyeyu.api.bean.ModuleCode;
import com.imyeyu.api.modules.common.entity.Attachment; import com.imyeyu.api.modules.common.entity.Attachment;
import com.imyeyu.api.modules.common.service.AttachmentService; import com.imyeyu.api.modules.common.service.AttachmentService;
import com.imyeyu.api.modules.gao.annotation.RequireGaoPermission; import com.imyeyu.api.modules.gao.annotation.RequireGaoPermission;
import com.imyeyu.api.modules.gao.annotation.RequireGaoRole;
import com.imyeyu.api.modules.gao.bean.GaoPermissionCode; import com.imyeyu.api.modules.gao.bean.GaoPermissionCode;
import com.imyeyu.api.modules.gao.bean.GaoRoleCode; import com.imyeyu.api.modules.gao.bean.GaoRoleCode;
import com.imyeyu.api.modules.gao.entity.GaoUser; import com.imyeyu.api.modules.gao.entity.GaoUser;
@@ -117,7 +116,6 @@ public class GaoUserController {
@AOPLog @AOPLog
@RequestRateLimit @RequestRateLimit
@RequireGaoRole(GaoRoleCode.GLOBAL_MANAGER)
@RequireGaoPermission(GaoPermissionCode.USER_UPDATE) @RequireGaoPermission(GaoPermissionCode.USER_UPDATE)
@PostMapping("/transfer/store") @PostMapping("/transfer/store")
@JsonView(ResponseView.Public.class) @JsonView(ResponseView.Public.class)