mirror of
https://gitee.com/dromara/RuoYi-Vue-Plus.git
synced 2026-09-21 02:25:56 +08:00
update 优化 脱敏增加角色及权限校验
This commit is contained in:
parent
7c533a21d2
commit
bb6f79913b
@ -139,9 +139,4 @@ public interface UserConstants {
|
||||
*/
|
||||
Long SUPER_ADMIN_ID = 1L;
|
||||
|
||||
/**
|
||||
* 角色及菜单权限脱敏标识
|
||||
*/
|
||||
String SENSITIVE = "sensitive";
|
||||
|
||||
}
|
||||
|
||||
@ -23,7 +23,7 @@ import java.lang.annotation.Target;
|
||||
public @interface Sensitive {
|
||||
SensitiveStrategy strategy();
|
||||
|
||||
String roleKey() default UserConstants.SENSITIVE;
|
||||
String roleKey() default "";
|
||||
|
||||
String perms() default UserConstants.SENSITIVE;
|
||||
String perms() default "";
|
||||
}
|
||||
|
||||
@ -13,6 +13,6 @@ public interface SensitiveService {
|
||||
/**
|
||||
* 是否脱敏
|
||||
*/
|
||||
boolean isSensitive(String roleKey,String perms);
|
||||
boolean isSensitive(String roleKey, String perms);
|
||||
|
||||
}
|
||||
|
||||
@ -27,16 +27,8 @@ public class SysSensitiveServiceImpl implements SensitiveService {
|
||||
if (!StpUtil.isLogin()){
|
||||
return true;
|
||||
}
|
||||
LoginUser loginUser = LoginHelper.getLoginUser();
|
||||
if (ObjectUtil.isNotNull(loginUser)) {
|
||||
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 (StpUtil.hasRole(roleKey) || StpUtil.hasPermission(perms)){
|
||||
return false;
|
||||
}
|
||||
if (TenantHelper.isEnable()) {
|
||||
return !LoginHelper.isSuperAdmin() && !LoginHelper.isTenantAdmin();
|
||||
|
||||
Loading…
Reference in New Issue
Block a user