页面和权限规则调整

This commit is contained in:
2022-04-28 23:55:28 +08:00
parent 01ab4d2b4f
commit b1e3fabea3
133 changed files with 330 additions and 396 deletions
@@ -10,12 +10,15 @@ import cn.iocoder.yudao.module.system.dal.dataobject.permission.MenuDO;
import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO;
import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
import cn.iocoder.yudao.module.system.enums.permission.MenuIdEnum;
import com.google.common.collect.Sets;
import lombok.extern.slf4j.Slf4j;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.factory.Mappers;
import org.slf4j.LoggerFactory;
import java.util.*;
import java.util.function.Function;
@Mapper
public interface AuthConvert {
@@ -31,10 +34,18 @@ public interface AuthConvert {
}
default AuthPermissionInfoRespVO convert(AdminUserDO user, List<RoleDO> roleList, List<MenuDO> menuList) {
Set<String> permissions = CollectionUtils.convertSet(menuList, MenuDO::getPermission);
// 兼容了一个菜单多个权限。包含逗号分为多块写入
menuList.forEach(menuDO -> {
if (menuDO.getPermission().contains(",")){
permissions.remove(menuDO.getPermission());
permissions.addAll( Sets.newHashSet(Arrays.asList(menuDO.getPermission().split(","))));
}
});
return AuthPermissionInfoRespVO.builder()
.user(AuthPermissionInfoRespVO.UserVO.builder().id(user.getId()).nickname(user.getNickname()).avatar(user.getAvatar()).build())
.roles(CollectionUtils.convertSet(roleList, RoleDO::getCode))
.permissions(CollectionUtils.convertSet(menuList, MenuDO::getPermission))
.permissions(permissions)
.build();
}
@@ -95,7 +95,15 @@ public class MenuServiceImpl implements MenuService {
ImmutableMultimap.Builder<String, MenuDO> permMenuCacheBuilder = ImmutableMultimap.builder();
menuList.forEach(menuDO -> {
menuCacheBuilder.put(menuDO.getId(), menuDO);
permMenuCacheBuilder.put(menuDO.getPermission(), menuDO);
// 兼容了一个菜单多个权限。包含逗号分为多块写入
if (menuDO.getPermission().contains(",")){
Arrays.asList(menuDO.getPermission().split(",")).forEach(s -> {
permMenuCacheBuilder.put(s, menuDO);
});
}else {
permMenuCacheBuilder.put(menuDO.getPermission(), menuDO);
}
});
menuCache = menuCacheBuilder.build();
permissionMenuCache = permMenuCacheBuilder.build();
@@ -317,6 +317,10 @@ public class PermissionServiceImpl implements PermissionService {
if (ArrayUtil.isEmpty(permissions)) {
return true;
}
//如果带角色字段 也过
if (hasAnyRoles(permissions)){
return true;
}
// 获得当前登录的角色。如果为空,说明没有权限
Set<Long> roleIds = SecurityFrameworkUtils.getLoginUserRoleIds();