update 优化 脱敏增加角色及权限校验

This commit is contained in:
刘一森 2023-11-09 16:36:41 +08:00
parent 7c533a21d2
commit bb6f79913b
4 changed files with 5 additions and 18 deletions

View File

@ -139,9 +139,4 @@ public interface UserConstants {
*/ */
Long SUPER_ADMIN_ID = 1L; Long SUPER_ADMIN_ID = 1L;
/**
* 角色及菜单权限脱敏标识
*/
String SENSITIVE = "sensitive";
} }

View File

@ -23,7 +23,7 @@ import java.lang.annotation.Target;
public @interface Sensitive { public @interface Sensitive {
SensitiveStrategy strategy(); SensitiveStrategy strategy();
String roleKey() default UserConstants.SENSITIVE; String roleKey() default "";
String perms() default UserConstants.SENSITIVE; String perms() default "";
} }

View File

@ -13,6 +13,6 @@ public interface SensitiveService {
/** /**
* 是否脱敏 * 是否脱敏
*/ */
boolean isSensitive(String roleKey,String perms); boolean isSensitive(String roleKey, String perms);
} }

View File

@ -27,16 +27,8 @@ public class SysSensitiveServiceImpl implements SensitiveService {
if (!StpUtil.isLogin()){ if (!StpUtil.isLogin()){
return true; return true;
} }
LoginUser loginUser = LoginHelper.getLoginUser(); if (StpUtil.hasRole(roleKey) || StpUtil.hasPermission(perms)){
if (ObjectUtil.isNotNull(loginUser)) { return false;
boolean roleSensitiveFlag = loginUser.getRolePermission().stream().anyMatch(role -> role.contains(roleKey));
if (roleSensitiveFlag) {
return false;
}
boolean permsSensitiveFlag = loginUser.getMenuPermission().stream().anyMatch(menu -> menu.contains(perms));
if (permsSensitiveFlag) {
return false;
}
} }
if (TenantHelper.isEnable()) { if (TenantHelper.isEnable()) {
return !LoginHelper.isSuperAdmin() && !LoginHelper.isTenantAdmin(); return !LoginHelper.isSuperAdmin() && !LoginHelper.isTenantAdmin();