This commit is contained in:
@@ -231,12 +231,15 @@ class DingtalkAuthService:
|
|||||||
raise Exception("无法获取钉钉用户ID")
|
raise Exception("无法获取钉钉用户ID")
|
||||||
|
|
||||||
# 3. 根据dingtalk_id查找系统用户
|
# 3. 根据dingtalk_id查找系统用户
|
||||||
|
logger.info(f"开始查找用户,钉钉userid: {dingtalk_userid}")
|
||||||
user = await self.user_service.get_by_dingtalk_id(dingtalk_userid)
|
user = await self.user_service.get_by_dingtalk_id(dingtalk_userid)
|
||||||
|
|
||||||
if not user:
|
if not user:
|
||||||
|
logger.info(f"通过dingtalk_id未找到用户,尝试手机号匹配")
|
||||||
# 尝试通过手机号匹配
|
# 尝试通过手机号匹配
|
||||||
user_detail = await self.get_user_detail(tenant_id, dingtalk_userid)
|
user_detail = await self.get_user_detail(tenant_id, dingtalk_userid)
|
||||||
mobile = user_detail.get("mobile")
|
mobile = user_detail.get("mobile")
|
||||||
|
logger.info(f"获取到钉钉用户手机号: {mobile}")
|
||||||
|
|
||||||
if mobile:
|
if mobile:
|
||||||
user = await self.user_service.get_by_phone(mobile)
|
user = await self.user_service.get_by_phone(mobile)
|
||||||
@@ -245,8 +248,13 @@ class DingtalkAuthService:
|
|||||||
user.dingtalk_id = dingtalk_userid
|
user.dingtalk_id = dingtalk_userid
|
||||||
await self.db.commit()
|
await self.db.commit()
|
||||||
logger.info(f"通过手机号匹配成功,已绑定dingtalk_id: {dingtalk_userid}")
|
logger.info(f"通过手机号匹配成功,已绑定dingtalk_id: {dingtalk_userid}")
|
||||||
|
else:
|
||||||
|
logger.warning(f"通过手机号 {mobile} 也未找到用户")
|
||||||
|
else:
|
||||||
|
logger.warning("无法获取钉钉用户手机号")
|
||||||
|
|
||||||
if not user:
|
if not user:
|
||||||
|
logger.error(f"钉钉登录失败:dingtalk_userid={dingtalk_userid}, 未找到对应用户")
|
||||||
raise Exception("未找到对应的系统用户,请联系管理员")
|
raise Exception("未找到对应的系统用户,请联系管理员")
|
||||||
|
|
||||||
if not user.is_active:
|
if not user.is_active:
|
||||||
|
|||||||
Reference in New Issue
Block a user