浏览代码

1、判断是否是管理员登录修改
2、登录后设置当前所在租户

dongpo 1 月之前
父节点
当前提交
27eeadfb22

+ 5 - 3
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dingding/DingThirdAuthController.java

@@ -105,16 +105,18 @@ public class DingThirdAuthController {
         DingUserTenantRelateDO dingUserTenantRelateDO = dingUserTenantRelateMapper.selectOne(DingUserTenantRelateDO::getTenantId,tenant.getId());
         //获取企业token。
         String corpAccessToken = dingAuthTokenService.getThirdCorpAccessToken(corpId,tenant.getSuiteTicket());
-        System.out.println("企业" + JSONObject.toJSONString(corpAccessToken));
+        // System.out.println("企业" + JSONObject.toJSONString(corpAccessToken));
+        log.info("企业" + JSONObject.toJSONString(corpAccessToken));
         //根据管理员用户userid查询管理员信息
         OapiV2UserGetResponse userUnfo = dingAuthTokenService.getUser(dingUserTenantRelateDO.getUserId(), corpAccessToken);
-        System.out.println("用户管理员信息" + JSONObject.toJSONString(userUnfo));
+        // System.out.println("用户管理员信息" + JSONObject.toJSONString(userUnfo));
+        log.info("用户管理员信息" + JSONObject.toJSONString(userUnfo));
 
         //todo 初始化用户
         GetUserResponseBody result= addressBookUserInfo.getBody();
         Boolean adminType = false;
         //todo 判断是否是管理员用户
-        if(userUnfo.getResult().getUserid().equals(result.getUnionId())){
+        if(userUnfo.getResult().getUnionid().equals(result.getUnionId())){
             adminType = true;
 
             //-权限需开通

+ 10 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImpl.java

@@ -11,6 +11,7 @@ import cn.iocoder.yudao.module.system.api.sms.SmsCodeApi;
 import cn.iocoder.yudao.module.system.api.social.dto.SocialUserBindReqDTO;
 import cn.iocoder.yudao.module.system.api.social.dto.SocialUserRespDTO;
 import cn.iocoder.yudao.module.system.controller.admin.auth.vo.*;
+import cn.iocoder.yudao.module.system.controller.admin.user.vo.tenant.UserTenantRelateSaveReqVO;
 import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserSaveReqVO;
 import cn.iocoder.yudao.module.system.convert.auth.AuthConvert;
 import cn.iocoder.yudao.module.system.dal.dataobject.oauth2.OAuth2AccessTokenDO;
@@ -24,6 +25,7 @@ import cn.iocoder.yudao.module.system.service.member.MemberService;
 import cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenService;
 import cn.iocoder.yudao.module.system.service.social.SocialUserService;
 import cn.iocoder.yudao.module.system.service.user.AdminUserService;
+import cn.iocoder.yudao.module.system.service.user.UserTenantRelateService;
 import com.google.common.annotations.VisibleForTesting;
 import com.xingyuv.captcha.model.common.ResponseModel;
 import com.xingyuv.captcha.model.vo.CaptchaVO;
@@ -66,6 +68,9 @@ public class AdminAuthServiceImpl implements AdminAuthService {
     @Resource
     private SmsCodeApi smsCodeApi;
 
+    @Resource
+    private UserTenantRelateService userTenantRelateService;
+
     /**
      * 验证码的开关,默认为 true
      */
@@ -121,6 +126,11 @@ public class AdminAuthServiceImpl implements AdminAuthService {
 //            socialUserService.bindSocialUser(new SocialUserBindReqDTO(user.getId(), getUserType().getValue(),
 //                    reqVO.getSocialType(), reqVO.getSocialCode(), reqVO.getSocialState()));
 //        }
+        // 登录后,设置用户当前所在租户标记
+        // 将这个用户所有租户关系设为不生效
+        userTenantRelateService.deactivateAllForUser(reqVO.getId());
+        // 将这个用户的这个租户关系设为生效
+        userTenantRelateService.activateForUser(new UserTenantRelateSaveReqVO().setUserId(reqVO.getId()).setTenantId(reqVO.getTenantId()));
         // 创建 Token 令牌,记录登录日志
         return createTokenAfterLoginSuccess(reqVO.getId(), reqVO.getUsername(), LoginLogTypeEnum.LOGIN_USERNAME,reqVO.getTenantId());
     }