Remove admin settings on tenant deletion

This commit is contained in:
Viacheslav Klimov 2022-06-10 16:17:37 +03:00
parent 7c2283e3cd
commit cc52452d75
7 changed files with 26 additions and 3 deletions

View File

@ -72,7 +72,7 @@ public abstract class TbAbstractVersionControlSettingsService<T extends Serializ
} }
public boolean delete(TenantId tenantId) { public boolean delete(TenantId tenantId) {
boolean result = adminSettingsService.deleteAdminSettings(tenantId, settingsKey); boolean result = adminSettingsService.deleteAdminSettingsByTenantIdAndKey(tenantId, settingsKey);
cache.evict(tenantId); cache.evict(tenantId);
return result; return result;
} }

View File

@ -29,6 +29,8 @@ public interface AdminSettingsService {
AdminSettings saveAdminSettings(TenantId tenantId, AdminSettings adminSettings); AdminSettings saveAdminSettings(TenantId tenantId, AdminSettings adminSettings);
boolean deleteAdminSettings(TenantId tenantId, String key); boolean deleteAdminSettingsByTenantIdAndKey(TenantId tenantId, String key);
void deleteAdminSettingsByTenantId(TenantId tenantId);
} }

View File

@ -41,4 +41,6 @@ public interface AdminSettingsDao extends Dao<AdminSettings> {
boolean removeByTenantIdAndKey(UUID tenantId, String key); boolean removeByTenantIdAndKey(UUID tenantId, String key);
void removeByTenantId(UUID tenantId);
} }

View File

@ -71,9 +71,15 @@ public class AdminSettingsServiceImpl implements AdminSettingsService {
} }
@Override @Override
public boolean deleteAdminSettings(TenantId tenantId, String key) { public boolean deleteAdminSettingsByTenantIdAndKey(TenantId tenantId, String key) {
log.trace("Executing deleteAdminSettings, tenantId [{}], key [{}]", tenantId, key); log.trace("Executing deleteAdminSettings, tenantId [{}], key [{}]", tenantId, key);
Validator.validateString(key, "Incorrect key " + key); Validator.validateString(key, "Incorrect key " + key);
return adminSettingsDao.removeByTenantIdAndKey(tenantId.getId(), key); return adminSettingsDao.removeByTenantIdAndKey(tenantId.getId(), key);
} }
@Override
public void deleteAdminSettingsByTenantId(TenantId tenantId) {
adminSettingsDao.removeByTenantId(tenantId.getId());
}
} }

View File

@ -29,6 +29,8 @@ public interface AdminSettingsRepository extends JpaRepository<AdminSettingsEnti
void deleteByTenantIdAndKey(UUID tenantId, String key); void deleteByTenantIdAndKey(UUID tenantId, String key);
void deleteByTenantId(UUID tenantId);
boolean existsByTenantIdAndKey(UUID tenantId, String key); boolean existsByTenantIdAndKey(UUID tenantId, String key);
} }

View File

@ -60,4 +60,10 @@ public class JpaAdminSettingsDao extends JpaAbstractDao<AdminSettingsEntity, Adm
} }
return false; return false;
} }
@Override
public void removeByTenantId(UUID tenantId) {
adminSettingsRepository.deleteByTenantId(tenantId);
}
} }

View File

@ -41,6 +41,7 @@ import org.thingsboard.server.dao.rule.RuleChainService;
import org.thingsboard.server.dao.service.DataValidator; import org.thingsboard.server.dao.service.DataValidator;
import org.thingsboard.server.dao.service.PaginatedRemover; import org.thingsboard.server.dao.service.PaginatedRemover;
import org.thingsboard.server.dao.service.Validator; import org.thingsboard.server.dao.service.Validator;
import org.thingsboard.server.dao.settings.AdminSettingsService;
import org.thingsboard.server.dao.usagerecord.ApiUsageStateService; import org.thingsboard.server.dao.usagerecord.ApiUsageStateService;
import org.thingsboard.server.dao.user.UserService; import org.thingsboard.server.dao.user.UserService;
import org.thingsboard.server.dao.widget.WidgetsBundleService; import org.thingsboard.server.dao.widget.WidgetsBundleService;
@ -107,6 +108,9 @@ public class TenantServiceImpl extends AbstractEntityService implements TenantSe
@Autowired @Autowired
private QueueService queueService; private QueueService queueService;
@Autowired
private AdminSettingsService adminSettingsService;
@Override @Override
public Tenant findTenantById(TenantId tenantId) { public Tenant findTenantById(TenantId tenantId) {
log.trace("Executing findTenantById [{}]", tenantId); log.trace("Executing findTenantById [{}]", tenantId);
@ -164,6 +168,7 @@ public class TenantServiceImpl extends AbstractEntityService implements TenantSe
otaPackageService.deleteOtaPackagesByTenantId(tenantId); otaPackageService.deleteOtaPackagesByTenantId(tenantId);
rpcService.deleteAllRpcByTenantId(tenantId); rpcService.deleteAllRpcByTenantId(tenantId);
queueService.deleteQueuesByTenantId(tenantId); queueService.deleteQueuesByTenantId(tenantId);
adminSettingsService.deleteAdminSettingsByTenantId(tenantId);
tenantDao.removeById(tenantId, tenantId.getId()); tenantDao.removeById(tenantId, tenantId.getId());
deleteEntityRelations(tenantId, tenantId); deleteEntityRelations(tenantId, tenantId);
} }