diff --git a/application/src/main/data/upgrade/3.4.4/schema_update.sql b/application/src/main/data/upgrade/3.4.4/schema_update.sql new file mode 100644 index 0000000000..811031b195 --- /dev/null +++ b/application/src/main/data/upgrade/3.4.4/schema_update.sql @@ -0,0 +1,21 @@ +-- +-- Copyright © 2016-2023 The Thingsboard Authors +-- +-- Licensed under the Apache License, Version 2.0 (the "License"); +-- you may not use this file except in compliance with the License. +-- You may obtain a copy of the License at +-- +-- http://www.apache.org/licenses/LICENSE-2.0 +-- +-- Unless required by applicable law or agreed to in writing, software +-- distributed under the License is distributed on an "AS IS" BASIS, +-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +-- See the License for the specific language governing permissions and +-- limitations under the License. +-- + +CREATE TABLE IF NOT EXISTS user_settings ( + user_id uuid NOT NULL CONSTRAINT user_settings_pkey PRIMARY KEY, + settings varchar(10000), + CONSTRAINT fk_user_id FOREIGN KEY (user_id) REFERENCES tb_user(id) ON DELETE CASCADE +); diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/sql/UserSettingsEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/sql/UserSettingsEntity.java index 59a0aeb081..183b35f839 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/model/sql/UserSettingsEntity.java +++ b/dao/src/main/java/org/thingsboard/server/dao/model/sql/UserSettingsEntity.java @@ -42,7 +42,6 @@ import javax.persistence.Id; import javax.persistence.Table; import java.util.UUID; -@EqualsAndHashCode @Data @NoArgsConstructor @TypeDef(name = "json", typeClass = JsonStringType.class) diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/user/JpaUserSettingsDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/user/JpaUserSettingsDao.java index 9296cae178..74499683dd 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/user/JpaUserSettingsDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/user/JpaUserSettingsDao.java @@ -48,17 +48,17 @@ public class JpaUserSettingsDao extends JpaAbstractDaoListeningExecutorService i private UserSettingsRepository userSettingsRepository; @Override - public UserSettings saveSettings(TenantId tenantId, UserSettings userSettings) { + public UserSettings save(TenantId tenantId, UserSettings userSettings) { return DaoUtil.getData(userSettingsRepository.save(new UserSettingsEntity(userSettings))); } @Override - public UserSettings findByUserId(TenantId tenantId, UserId userId) { + public UserSettings findById(TenantId tenantId, UserId userId) { return DaoUtil.getData(userSettingsRepository.findById(userId.getId())); } @Override - public void removeByUserId(TenantId tenantId, UserId userId) { + public void removeById(TenantId tenantId, UserId userId) { userSettingsRepository.deleteById(userId.getId()); } diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/user/UserSettingsRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/user/UserSettingsRepository.java index b4df8e72a6..6766bdb106 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/user/UserSettingsRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/user/UserSettingsRepository.java @@ -17,20 +17,14 @@ package org.thingsboard.server.dao.sql.user; import org.springframework.data.jpa.repository.JpaRepository; import org.thingsboard.server.common.data.security.UserSettings; -import org.thingsboard.server.dao.model.sql.UserCredentialsEntity; import org.thingsboard.server.dao.model.sql.UserSettingsEntity; import java.util.UUID; -/** - * Created by Valerii Sosliuk on 4/22/2017. - */ public interface UserSettingsRepository extends JpaRepository { - UserSettingsEntity save(UserSettings saveSettings); - - UserSettingsEntity findByUserId(UUID userId); - - UserSettingsEntity deleteByUserId(UUID userId); +// UserSettingsEntity save(UserSettings saveSettings); +// +// UserSettingsEntity findByUserId(UUID userId); } diff --git a/dao/src/main/java/org/thingsboard/server/dao/user/UserServiceImpl.java b/dao/src/main/java/org/thingsboard/server/dao/user/UserServiceImpl.java index 9721934d26..78860df8c9 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/user/UserServiceImpl.java +++ b/dao/src/main/java/org/thingsboard/server/dao/user/UserServiceImpl.java @@ -326,23 +326,23 @@ public class UserServiceImpl extends AbstractEntityService implements UserServic @Override public UserSettings saveUserSettings(TenantId tenantId, UserId userId, UserSettings userSettings) { - log.trace("Executing saveUserSettings [{}], [{}]", userId, userSettings); + log.trace("Executing saveUserSettings for user [{}], [{}]", userId, userSettings); validateId(userId, INCORRECT_USER_ID + userId); - return userSettingsDao.saveSettings(tenantId, userSettings); + return userSettingsDao.save(tenantId, userSettings); } @Override public UserSettings findUserSettings(TenantId tenantId, UserId userId) { - log.trace("Executing findUserSettings [{}]", userId); + log.trace("Executing findUserSettings for user [{}]", userId); validateId(userId, INCORRECT_USER_ID + userId); - return userSettingsDao.findByUserId(tenantId, userId); + return userSettingsDao.findById(tenantId, userId); } @Override public void deleteUserSettings(TenantId tenantId, UserId userId) { log.trace("Executing deleteUserSettings for user [{}]", userId); validateId(userId, INCORRECT_USER_ID + userId); - userSettingsDao.removeByUserId(tenantId, userId); + userSettingsDao.removeById(tenantId, userId); } private int increaseFailedLoginAttempts(User user) { diff --git a/dao/src/main/java/org/thingsboard/server/dao/user/UserSettingsDao.java b/dao/src/main/java/org/thingsboard/server/dao/user/UserSettingsDao.java index 5e162a8ad7..16a7675a64 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/user/UserSettingsDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/user/UserSettingsDao.java @@ -17,16 +17,14 @@ package org.thingsboard.server.dao.user; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.id.UserId; -import org.thingsboard.server.common.data.security.UserAuthSettings; import org.thingsboard.server.common.data.security.UserSettings; -import org.thingsboard.server.dao.Dao; public interface UserSettingsDao { - UserSettings saveSettings(TenantId tenantId, UserSettings userSettings); + UserSettings save(TenantId tenantId, UserSettings userSettings); - UserSettings findByUserId(TenantId tenantId, UserId userId); + UserSettings findById(TenantId tenantId, UserId userId); - void removeByUserId(TenantId tenantId, UserId userId); + void removeById(TenantId tenantId, UserId userId); } diff --git a/dao/src/test/java/org/thingsboard/server/dao/sql/user/JpaUserSettingsDaoTest.java b/dao/src/test/java/org/thingsboard/server/dao/sql/user/JpaUserSettingsDaoTest.java index 8dd703dc84..fa07e7dae0 100644 --- a/dao/src/test/java/org/thingsboard/server/dao/sql/user/JpaUserSettingsDaoTest.java +++ b/dao/src/test/java/org/thingsboard/server/dao/sql/user/JpaUserSettingsDaoTest.java @@ -67,15 +67,15 @@ public class JpaUserSettingsDaoTest extends AbstractJpaDaoTest { } @Test - public void testFindSettingsByTenantAdminUserId() { + public void testFindSettingsByUserId() { UserSettings userSettings = createUserSettings(user.getId()); - UserSettings retrievedUserSettings = userSettingsDao.findByUserId(SYSTEM_TENANT_ID, user.getId()); + UserSettings retrievedUserSettings = userSettingsDao.findById(SYSTEM_TENANT_ID, user.getId()); assertEquals(retrievedUserSettings.getSettings(), userSettings.getSettings()); - userSettingsDao.removeByUserId(SYSTEM_TENANT_ID, user.getId()); + userSettingsDao.removeById(SYSTEM_TENANT_ID, user.getId()); - UserSettings retrievedUserSettings2 = userSettingsDao.findByUserId(SYSTEM_TENANT_ID, user.getId()); + UserSettings retrievedUserSettings2 = userSettingsDao.findById(SYSTEM_TENANT_ID, user.getId()); assertNull(retrievedUserSettings2); } @@ -83,7 +83,7 @@ public class JpaUserSettingsDaoTest extends AbstractJpaDaoTest { UserSettings userSettings = new UserSettings(); userSettings.setSettings(JacksonUtil.newObjectNode().put("text", RandomStringUtils.randomAlphanumeric(10))); userSettings.setUserId(userId); - return userSettingsDao.saveSettings(SYSTEM_TENANT_ID, userSettings); + return userSettingsDao.save(SYSTEM_TENANT_ID, userSettings); } private User saveUser(UUID tenantId, UUID customerId) {