update 权限

This commit is contained in:
2023-03-09 11:42:51 +08:00
parent a567e65142
commit 393ac73f33
4 changed files with 52 additions and 48 deletions

View File

@@ -0,0 +1,19 @@
package com.jsowell.common.core.domain.vo;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class AuthorizedDeptVO {
// 有权限的运营商
private List<String> merchantDeptIds;
// 有权限的站点
private List<String> stationDeptIds;
}

View File

@@ -1,11 +1,18 @@
package com.jsowell.common.util;
import com.google.common.collect.Lists;
import com.jsowell.common.constant.HttpStatus;
import com.jsowell.common.core.domain.entity.SysDept;
import com.jsowell.common.core.domain.entity.SysRole;
import com.jsowell.common.core.domain.entity.SysUser;
import com.jsowell.common.core.domain.model.LoginUser;
import com.jsowell.common.core.domain.vo.AuthorizedDeptVO;
import com.jsowell.common.exception.ServiceException;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import com.jsowell.common.constant.HttpStatus;
import com.jsowell.common.core.domain.model.LoginUser;
import com.jsowell.common.exception.ServiceException;
import java.util.List;
/**
* 安全服务工具类
@@ -96,4 +103,41 @@ public class SecurityUtils {
public static boolean isAdmin(Long userId) {
return userId != null && 1L == userId;
}
// 查询登录用户权限
public static AuthorizedDeptVO getAuthorizedMap() {
// 登录用户
LoginUser loginUser = getLoginUser();
if (loginUser == null) {
return null;
}
// 用户
SysUser user = loginUser.getUser();
if (user == null) {
return null;
}
AuthorizedDeptVO resultVO = AuthorizedDeptVO.builder().build();
// 登录用户所属部门(运营商或站点 根据父级id判断
SysDept dept = user.getDept();
if (dept == null) {
return null;
}
// 登录用户角色
List<SysRole> roles = user.getRoles();
Long parentId = dept.getParentId();
List<String> merchantDeptIds = Lists.newArrayList();
List<String> stationDeptIds = Lists.newArrayList();
if (parentId == 0L) {
// 父级id是0表明是该账号挂在平台下面是系统管理员
} else if (parentId == 100L) {
// 父级id是100表明是该账号挂在运营商下面是运营商管理员
merchantDeptIds.add(String.valueOf(dept.getDeptId()));
resultVO.setMerchantDeptIds(merchantDeptIds);
} else {
// 其他情况,表明是站点管理员
stationDeptIds.add(String.valueOf(dept.getDeptId()));
resultVO.setStationDeptIds(stationDeptIds);
}
return resultVO;
}
}