mirror of
http://git.pig4cloud.com/pig/pigx.git
synced 2026-11-08 04:39:00 +08:00
fix(upms): 保存网站配置时保留各终端验证码开关
移除网站验证码模式变更时对所有 OAuth 终端 captcha_flag 的批量同步,保留前端对默认登录终端的同步行为。 Refs: pig/pigx#7631 (cherry picked from commit 836c2ea5e22f9e9a88f60d8a699e4a66e88979b9)
This commit is contained in:
1 parent
ca84985d63
commit
65f184ace6
1 file changed
-38
-38
@@ -18,23 +18,15 @@
|
||||
package com.pig4cloud.pigx.admin.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.json.JSONObject;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.pig4cloud.pigx.admin.api.dto.SiteConfigDTO;
|
||||
import com.pig4cloud.pigx.admin.api.entity.SysOauthClientDetails;
|
||||
import com.pig4cloud.pigx.admin.api.entity.SysPublicParam;
|
||||
import com.pig4cloud.pigx.admin.config.ClientDetailsInitRunner;
|
||||
import com.pig4cloud.pigx.admin.service.SysI18nService;
|
||||
import com.pig4cloud.pigx.admin.service.SysOauthClientDetailsService;
|
||||
import com.pig4cloud.pigx.admin.service.SysPublicParamService;
|
||||
import com.pig4cloud.pigx.admin.service.SysSiteConfigService;
|
||||
import com.pig4cloud.pigx.common.core.constant.CacheConstants;
|
||||
import com.pig4cloud.pigx.common.core.constant.CommonConstants;
|
||||
import com.pig4cloud.pigx.common.core.constant.enums.DictTypeEnum;
|
||||
import com.pig4cloud.pigx.common.core.constant.enums.YesNoEnum;
|
||||
import com.pig4cloud.pigx.common.core.util.SpringContextHolder;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.cache.annotation.CacheEvict;
|
||||
import org.springframework.cache.annotation.Cacheable;
|
||||
@@ -94,8 +86,6 @@ public class SysSiteConfigServiceImpl implements SysSiteConfigService {
|
||||
|
||||
private final SysI18nService sysI18nService;
|
||||
|
||||
private final SysOauthClientDetailsService sysOauthClientDetailsService;
|
||||
|
||||
@Override
|
||||
@Cacheable(value = CacheConstants.SITE_CONFIG_DETAILS)
|
||||
public Map<String, Object> getAggregatedConfig() {
|
||||
@@ -164,11 +154,6 @@ public class SysSiteConfigServiceImpl implements SysSiteConfigService {
|
||||
sysPublicParamService.save(newParam);
|
||||
}
|
||||
}
|
||||
|
||||
// 同步 captcha_flag 到 OAuth 客户端扩展信息
|
||||
if (dto.getCaptchaType() != null) {
|
||||
syncCaptchaFlagToClients(!"none".equals(dto.getCaptchaType()));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -180,27 +165,4 @@ public class SysSiteConfigServiceImpl implements SysSiteConfigService {
|
||||
// 仅触发 @CacheEvict,无需额外逻辑
|
||||
}
|
||||
|
||||
/**
|
||||
* 同步验证码开关到所有 OAuth 客户端的 additionalInformation
|
||||
*
|
||||
* @param captchaEnable 是否启用验证码
|
||||
*/
|
||||
private void syncCaptchaFlagToClients(Boolean captchaEnable) {
|
||||
String captchaFlag = YesNoEnum.getCode(captchaEnable);
|
||||
List<SysOauthClientDetails> clients = sysOauthClientDetailsService.list();
|
||||
|
||||
for (SysOauthClientDetails client : clients) {
|
||||
if (StrUtil.isBlank(client.getAdditionalInformation())) {
|
||||
continue;
|
||||
}
|
||||
JSONObject informationObj = JSONUtil.parseObj(client.getAdditionalInformation());
|
||||
informationObj.set(CommonConstants.CAPTCHA_FLAG, captchaFlag);
|
||||
client.setAdditionalInformation(informationObj.toString());
|
||||
sysOauthClientDetailsService.updateById(client);
|
||||
}
|
||||
|
||||
// 刷新 Redis 客户端缓存
|
||||
SpringContextHolder.publishEvent(new ClientDetailsInitRunner.ClientDetailsInitEvent(this));
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user