123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- package com.dragoninfo.dcuc.authweb.restcontroller.login;
- import cn.hutool.core.util.StrUtil;
- import com.dragoninfo.dcuc.auth.auth.facade.IRoleFacade;
- import com.dragoninfo.dcuc.authweb.config.DcucAuthWebConfig;
- import com.dragoninfo.dcuc.org.facade.IOrgInfoFacade;
- import com.dragoninfo.dcuc.user.admin.facade.IManageInfoFacade;
- import com.dragoninfo.dcuc.user.admin.facade.IMenuMtAuthFacade;
- import com.dragoninfo.dcuc.user.user.entity.UserInfo;
- import com.dragoninfo.dcuc.user.user.enumresources.UserTypeEnum;
- import com.dragoninfo.dcuc.user.user.facade.IUserFacade;
- import com.dragoninfo.dcuc.user.user.facade.IUserInfoFacade;
- import com.dragonsoft.duceap.base.entity.security.SecurityRight;
- import com.dragonsoft.duceap.base.entity.security.SecurityUser;
- import com.dragonsoft.duceap.base.utils.UserContextUtils;
- import com.dragonsoft.duceap.commons.util.json.JsonUtils;
- import com.dragonsoft.duceap.commons.util.string.StringUtils;
- import com.dragonsoft.duceap.web.SecurityProperties;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.GetMapping;
- import org.springframework.web.bind.annotation.RequestHeader;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RestController;
- import java.util.ArrayList;
- import java.util.List;
- @RestController
- @RequestMapping(value = "/user")
- public class DcucLoginController {
- @Autowired
- private IMenuMtAuthFacade iMenuMtAuthFacade;
- @Autowired
- private IUserInfoFacade iUserInfoFacade;
- @Autowired
- private IManageInfoFacade iManageInfoFacade;
- @Autowired
- private IRoleFacade iRoleFacade;
- @Autowired
- private IOrgInfoFacade iOrgInfoFacade;
- @Autowired
- private DcucAuthWebConfig dcucAuthWebConfig;
- @Autowired
- private IUserFacade userFacade;
- @Autowired
- private SecurityProperties securityProperties;
- public static final Logger logger = LoggerFactory.getLogger(DcucLoginController.class);
- public DcucLoginController() {
- }
- @GetMapping(value = "/info")
- public SecurityUser info(@RequestHeader(value = "userToken", required = false) String userToken,
- @RequestHeader(value = "appToken", required = false) String appToken) {
- logger.info("UserToken:{},appToken:{}", userToken, appToken);
- UserInfo userInfo;
- try {
- SecurityUser securityUser = (SecurityUser) UserContextUtils.getCurrentUser();
- if ("dids".equals(securityProperties.getType())) {
- userInfo = userFacade.detailBySfzh(securityUser.getIdcard());
- securityUser.setName(userInfo.getName());
- securityUser.setUserName(userInfo.getName());
- } else {
- userInfo = iUserInfoFacade.userDetail(securityUser.getId());
- }
- String userId = securityUser.getId();
- if (StrUtil.isBlank(userId)) {
- securityUser.setId(userInfo.getId());
- }
- List<SecurityRight> authmenu = getAuthmenu(securityUser, userInfo);
- securityUser.setSecurityRightList(authmenu);
- //ADMIN管理员
- String rootOrgid = userInfo.getOrgId();
- if (iUserInfoFacade.isRootUser(securityUser.getId()) && StringUtils.isEmpty(rootOrgid)) {
- rootOrgid = iOrgInfoFacade.getRootOrgId();
- }
- securityUser.setSecurityOrg(rootOrgid);
- logger.info("securityUser:{}", JsonUtils.toJSONString(securityUser));
- return securityUser;
- } catch (Exception var3) {
- logger.error("获取用户信息异常", var3);
- throw new SecurityException("获取用户信息异常", var3);
- }
- }
- //获取菜单
- private List<SecurityRight> getAuthmenu(SecurityUser securityUser, UserInfo userInfo) {
- List<SecurityRight> rights = new ArrayList<SecurityRight>();
- //用户中心菜单
- //ADMIN
- if (iUserInfoFacade.getRootUser().equals(securityUser.getName())) {
- rights = iMenuMtAuthFacade.getAllMenus("SysMenuInfo");
- } else if (dcucAuthWebConfig.isAuthAccess()) {
- logger.info("进入权限授权模块控制菜单权限");
- //使用权限授权模块控制菜单权限
- List<String> rightIds = iRoleFacade.getAuthByUserIdAndAppCode(securityUser.getId(), dcucAuthWebConfig.getAppCode());
- rights = iMenuMtAuthFacade.getMenuByIds(rightIds, "SysMenuInfo");
- } else {
- logger.info("进入管理员管理配置菜单权限");
- //使用管理员管理配置菜单权限
- rights = iMenuMtAuthFacade.menuForIndex(securityUser.getId(), "00000000000000000000000000000000");
- rights = menuFilter(userInfo, rights);
- }
- String[] codes = new String[rights.size()];
- for (int i = 0; i < rights.size(); i++) {
- String code = rights.get(i).getCode();
- codes[i] = code;
- }
- securityUser.setSecurityRights(codes);
- return rights;
- }
- private List<SecurityRight> menuFilter(UserInfo userInfo, List<SecurityRight> securityRightList) {
- List<SecurityRight> tempSearchList = new ArrayList<SecurityRight>();
- for (SecurityRight securityRight : securityRightList) {
- String code = securityRight.getCode();
- if ((!UserTypeEnum.POLICE.getValue().equals(userInfo.getUserType()) && !iUserInfoFacade.getRootUser().equals(userInfo.getName()))
- && ("YHGLPT_ZHCX".equals(code) || "YHGLPT_ZHCX_RYCX".equals(code) || "YHGLPT_ZHCX_JGCX".equals(code))) {
- continue;
- }
- tempSearchList.add(securityRight);
- }
- securityRightList = tempSearchList;
- return securityRightList;
- }
- }
|