Browse Source

added new column for user_credentials table

pull/8110/head
dashevchenko 4 years ago
parent
commit
133c8f9ae4
  1. 17
      application/src/main/data/upgrade/3.4.4/schema_update.sql
  2. 21
      common/data/src/main/java/org/thingsboard/server/common/data/security/UserCredentials.java

17
application/src/main/data/upgrade/3.4.4/schema_update.sql

@ -30,3 +30,20 @@ CREATE TABLE IF NOT EXISTS user_settings (
settings varchar(100000),
CONSTRAINT fk_user_id FOREIGN KEY (user_id) REFERENCES tb_user(id) ON DELETE CASCADE
);
-- move password history from user to user_credentials table
ALTER TABLE user_credentials
ADD COLUMN IF NOT EXISTS additional_info varchar;
CREATE OR REPLACE PROCEDURE migrate_password_history()
LANGUAGE plpgsql AS
$$
BEGIN
UPDATE user_credentials AS c
SET additional_info = u.additional_info
FROM tb_user AS u
WHERE u.id = c.id;
END;
$$;
-- USER PASSWORD MIGRATION END
call migrate_password_history();

21
common/data/src/main/java/org/thingsboard/server/common/data/security/UserCredentials.java

@ -15,10 +15,17 @@
*/
package org.thingsboard.server.common.data.security;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.databind.JsonNode;
import lombok.EqualsAndHashCode;
import org.thingsboard.server.common.data.BaseData;
import org.thingsboard.server.common.data.id.UserCredentialsId;
import org.thingsboard.server.common.data.id.UserId;
import org.thingsboard.server.common.data.validation.Length;
import org.thingsboard.server.common.data.validation.NoXss;
import static org.thingsboard.server.common.data.SearchTextBasedWithAdditionalInfo.getJson;
import static org.thingsboard.server.common.data.SearchTextBasedWithAdditionalInfo.setJson;
@EqualsAndHashCode(callSuper = true)
public class UserCredentials extends BaseData<UserCredentialsId> {
@ -30,6 +37,20 @@ public class UserCredentials extends BaseData<UserCredentialsId> {
private String password;
private String activateToken;
private String resetToken;
@NoXss
private transient JsonNode additionalInfo;
@JsonIgnore
private byte[] additionalInfoBytes;
public JsonNode getAdditionalInfo() {
return getJson(() -> additionalInfo, () -> additionalInfoBytes);
}
public void setAdditionalInfo(JsonNode settings) {
setJson(settings, json -> this.additionalInfo = json, bytes -> this.additionalInfoBytes = bytes);
}
public UserCredentials() {
super();

Loading…
Cancel
Save