package com.jcdm.framework.web.service; import java.util.HashSet; import java.util.List; import java.util.Set; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.util.CollectionUtils; import com.jcdm.common.core.domain.entity.SysRole; import com.jcdm.common.core.domain.entity.SysUser; import com.jcdm.system.service.ISysMenuService; import com.jcdm.system.service.ISysRoleService; /** * 用户æƒé™å¤„ç† * * @author jc */ @Component public class SysPermissionService { @Autowired private ISysRoleService roleService; @Autowired private 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 (!CollectionUtils.isEmpty(roles)) { // 多角色设置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; } }