Merge pull request #6641 from ViacheslavKlimov/fix/admin-settings-api

Fix AdminSettings api
This commit is contained in:
Andrew Shvayka 2022-06-06 14:56:44 +03:00 committed by GitHub
commit 72e3a57fb2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 12 additions and 2 deletions

View File

@ -39,7 +39,7 @@ public abstract class TbAbstractVersionControlSettingsService<T extends Serializ
public T get(TenantId tenantId) {
return cache.getAndPutInTransaction(tenantId, () -> {
AdminSettings adminSettings = adminSettingsService.findAdminSettingsByKey(tenantId, settingsKey);
AdminSettings adminSettings = adminSettingsService.findAdminSettingsByTenantIdAndKey(tenantId, settingsKey);
if (adminSettings != null) {
try {
return JacksonUtil.convertValue(adminSettings.getJsonValue(), clazz);
@ -52,7 +52,7 @@ public abstract class TbAbstractVersionControlSettingsService<T extends Serializ
}
public T save(TenantId tenantId, T settings) {
AdminSettings adminSettings = adminSettingsService.findAdminSettingsByKey(tenantId, settingsKey);
AdminSettings adminSettings = adminSettingsService.findAdminSettingsByTenantIdAndKey(tenantId, settingsKey);
if (adminSettings == null) {
adminSettings = new AdminSettings();
adminSettings.setKey(settingsKey);

View File

@ -25,6 +25,8 @@ public interface AdminSettingsService {
AdminSettings findAdminSettingsByKey(TenantId tenantId, String key);
AdminSettings findAdminSettingsByTenantIdAndKey(TenantId tenantId, String key);
AdminSettings saveAdminSettings(TenantId tenantId, AdminSettings adminSettings);
boolean deleteAdminSettings(TenantId tenantId, String key);

View File

@ -46,6 +46,11 @@ public class AdminSettingsServiceImpl implements AdminSettingsService {
public AdminSettings findAdminSettingsByKey(TenantId tenantId, String key) {
log.trace("Executing findAdminSettingsByKey [{}]", key);
Validator.validateString(key, "Incorrect key " + key);
return findAdminSettingsByTenantIdAndKey(TenantId.SYS_TENANT_ID, key);
}
@Override
public AdminSettings findAdminSettingsByTenantIdAndKey(TenantId tenantId, String key) {
return adminSettingsDao.findByTenantIdAndKey(tenantId.getId(), key);
}
@ -59,6 +64,9 @@ public class AdminSettingsServiceImpl implements AdminSettingsService {
((ObjectNode) adminSettings.getJsonValue()).put("password", mailSettings.getJsonValue().get("password").asText());
}
}
if (adminSettings.getTenantId() == null) {
adminSettings.setTenantId(TenantId.SYS_TENANT_ID);
}
return adminSettingsDao.save(tenantId, adminSettings);
}