package org.ruoyi.system.service.impl; import lombok.RequiredArgsConstructor; import org.ruoyi.common.core.constant.TenantConstants; import org.ruoyi.common.satoken.utils.LoginHelper; import org.ruoyi.system.service.ISysMenuService; import org.ruoyi.system.service.ISysPermissionService; import org.ruoyi.system.service.ISysRoleService; import org.springframework.stereotype.Service; import java.util.HashSet; import java.util.Set; /** * 用户权限处理 * * @author ruoyi */ @RequiredArgsConstructor @Service public class SysPermissionServiceImpl implements ISysPermissionService { private final ISysRoleService roleService; private final ISysMenuService menuService; /** * 获取角色数据权限 * * @param userId 用户id * @return 角色权限信息 */ @Override public Set getRolePermission(Long userId) { Set roles = new HashSet<>(); // 管理员拥有所有权限 if (LoginHelper.isSuperAdmin(userId)) { roles.add(TenantConstants.SUPER_ADMIN_ROLE_KEY); } else { roles.addAll(roleService.selectRolePermissionByUserId(userId)); } return roles; } /** * 获取菜单数据权限 * * @param userId 用户id * @return 菜单权限信息 */ @Override public Set getMenuPermission(Long userId) { Set perms = new HashSet<>(); // 管理员拥有所有权限 if (LoginHelper.isSuperAdmin(userId)) { perms.add("*:*:*"); } else { perms.addAll(menuService.selectMenuPermsByUserId(userId)); } return perms; } }