| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- package com.ruoyi.system.service;
- import com.ruoyi.system.domain.SysRole;
- import com.ruoyi.system.domain.SysUser;
- import lombok.RequiredArgsConstructor;
- import org.springframework.stereotype.Service;
- import java.util.HashSet;
- import java.util.List;
- import java.util.Set;
- /**
- * 用户权限处理
- *
- * @author ruoyi
- */
- @RequiredArgsConstructor
- @Service
- public class SysPermissionService {
- private final ISysRoleService roleService;
- private final ISysMenuService menuService;
- /**
- * 获取角色数据权限
- *
- * @param user 用户信息
- * @return 角色权限信息
- */
- public Set<String> getRolePermission(SysUser user) {
- Set<String> roles = new HashSet<String>();
- // 管理员拥有所有权限
- if (user.isAdmin()) {
- roles.add("admin");
- } else {
- roles.addAll(roleService.selectRolePermissionByUserId(user.getUserId()));
- }
- return roles;
- }
- /**
- * 获取菜单数据权限
- *
- * @param user 用户信息
- * @return 菜单权限信息
- */
- public Set<String> getMenuPermission(SysUser user) {
- Set<String> perms = new HashSet<String>();
- // 管理员拥有所有权限
- if (user.isAdmin()) {
- perms.add("*:*:*");
- } else {
- List<SysRole> roles = user.getRoles();
- if (!roles.isEmpty() && roles.size() > 1) {
- // 多角色设置permissions属性,以便数据权限匹配权限
- for (SysRole role : roles) {
- Set<String> rolePerms = menuService.selectMenuPermsByRoleId(role.getRoleId());
- role.setPermissions(rolePerms);
- perms.addAll(rolePerms);
- }
- } else {
- perms.addAll(menuService.selectMenuPermsByUserId(user.getUserId()));
- }
- }
- return perms;
- }
- }
|