2023-10-18 12:04:53 +02:00
|
|
|
package eu.eudat.data.old;
|
2017-09-28 12:32:03 +02:00
|
|
|
|
2023-10-16 16:38:12 +02:00
|
|
|
import eu.eudat.data.CredentialEntity;
|
2018-10-02 16:33:58 +02:00
|
|
|
import eu.eudat.data.converters.DateToUTCConverter;
|
2023-10-18 12:04:53 +02:00
|
|
|
import eu.eudat.data.old.helpers.EntityBinder;
|
2023-11-14 15:27:46 +01:00
|
|
|
import eu.eudat.data.old.queryableentity.DataEntity;
|
2018-02-16 11:34:02 +01:00
|
|
|
|
2023-10-03 16:29:45 +02:00
|
|
|
import jakarta.persistence.*;
|
2018-10-02 16:33:58 +02:00
|
|
|
import java.util.*;
|
2017-12-15 17:57:41 +01:00
|
|
|
|
2017-09-28 12:32:03 +02:00
|
|
|
|
|
|
|
@Entity
|
2018-02-16 11:34:02 +01:00
|
|
|
@Table(name = "\"UserInfo\"")
|
2018-02-09 16:54:41 +01:00
|
|
|
@NamedEntityGraphs({
|
2019-05-21 17:17:41 +02:00
|
|
|
@NamedEntityGraph(
|
|
|
|
name = "userInfo",
|
2023-10-16 16:38:12 +02:00
|
|
|
attributeNodes = {@NamedAttributeNode("userRoles"), @NamedAttributeNode("additionalinfo")}),
|
2018-02-09 16:54:41 +01:00
|
|
|
})
|
2018-02-20 08:50:17 +01:00
|
|
|
public class UserInfo implements DataEntity<UserInfo, UUID> {
|
2017-09-28 12:32:03 +02:00
|
|
|
|
2019-05-21 17:17:41 +02:00
|
|
|
@Id
|
|
|
|
@GeneratedValue
|
|
|
|
@Column(name = "id", updatable = false, nullable = false, columnDefinition = "BINARY(16)")
|
|
|
|
private UUID id;
|
2023-10-11 16:53:12 +02:00
|
|
|
public final static String _id = "id";
|
2018-02-16 11:34:02 +01:00
|
|
|
|
|
|
|
|
2022-02-23 11:02:03 +01:00
|
|
|
@Column(name = "email")
|
2019-05-21 17:17:41 +02:00
|
|
|
private String email = null;
|
2023-10-11 16:53:12 +02:00
|
|
|
public final static String _email = "email";
|
2018-02-16 11:34:02 +01:00
|
|
|
|
2019-05-21 17:17:41 +02:00
|
|
|
@Column(name = "authorization_level", nullable = false)
|
|
|
|
private Short authorization_level; //0 admin, 1 user
|
2023-10-11 16:53:12 +02:00
|
|
|
public final static String _authorization_level = "authorization_level";
|
2018-02-16 11:34:02 +01:00
|
|
|
|
2019-05-21 17:17:41 +02:00
|
|
|
@Column(name = "usertype", nullable = false)
|
|
|
|
private Short usertype; // 0 internal, 1 external
|
2023-10-11 16:53:12 +02:00
|
|
|
public final static String _usertype = "usertype";
|
2018-02-16 11:34:02 +01:00
|
|
|
|
2020-10-27 17:06:58 +01:00
|
|
|
@Column(name = "userstatus", nullable = false)
|
|
|
|
private Short userStatus; // 0 active, 1 inactive
|
2023-10-11 16:53:12 +02:00
|
|
|
public final static String _userStatus = "userStatus";
|
2020-10-27 17:06:58 +01:00
|
|
|
|
2019-05-21 17:17:41 +02:00
|
|
|
@Column(name = "verified_email", nullable = true)
|
|
|
|
private Boolean verified_email = null;
|
2023-10-11 16:53:12 +02:00
|
|
|
public final static String _verified_email = "verified_email";
|
2018-02-16 11:34:02 +01:00
|
|
|
|
2019-05-21 17:17:41 +02:00
|
|
|
@Column(name = "name", nullable = true)
|
|
|
|
private String name = null;
|
2023-10-11 16:53:12 +02:00
|
|
|
public final static String _name = "name";
|
2018-02-16 11:34:02 +01:00
|
|
|
|
|
|
|
|
2019-05-21 17:17:41 +02:00
|
|
|
@Column(name = "created", nullable = false)
|
|
|
|
@Convert(converter = DateToUTCConverter.class)
|
|
|
|
private Date created = null;
|
2023-10-11 16:53:12 +02:00
|
|
|
public final static String _created = "created";
|
2018-02-16 11:34:02 +01:00
|
|
|
|
|
|
|
|
2019-05-21 17:17:41 +02:00
|
|
|
@Column(name = "lastloggedin", nullable = true)
|
|
|
|
@Convert(converter = DateToUTCConverter.class)
|
|
|
|
private Date lastloggedin = null;
|
2023-10-11 16:53:12 +02:00
|
|
|
public final static String _lastloggedin = "lastloggedin";
|
2018-02-16 11:34:02 +01:00
|
|
|
|
|
|
|
|
2019-05-21 17:17:41 +02:00
|
|
|
@Column(name = "additionalinfo", nullable = true)
|
|
|
|
private String additionalinfo;
|
2023-10-11 16:53:12 +02:00
|
|
|
public final static String _additionalinfo = "additionalinfo";
|
2018-02-16 11:34:02 +01:00
|
|
|
|
2023-11-16 13:01:39 +01:00
|
|
|
// @OneToMany(fetch = FetchType.LAZY)
|
|
|
|
// @JoinTable(name = "\"UserDMP\"",
|
|
|
|
// joinColumns = {@JoinColumn(name = "usr", referencedColumnName = "id")},
|
|
|
|
// inverseJoinColumns = {@JoinColumn(name = "dmp", referencedColumnName = "\"ID\"")}
|
|
|
|
// )
|
|
|
|
// private Set<DMP> dmps;
|
2017-12-15 17:57:41 +01:00
|
|
|
|
2023-10-16 16:38:12 +02:00
|
|
|
@OneToMany(fetch = FetchType.LAZY)
|
|
|
|
@JoinColumn(name = "Id")
|
|
|
|
private Set<CredentialEntity> credentialEntities = new HashSet<>();
|
2018-02-16 11:34:02 +01:00
|
|
|
|
2019-05-21 17:17:41 +02:00
|
|
|
@OneToMany(mappedBy = "userInfo", fetch = FetchType.LAZY)
|
|
|
|
private Set<UserRole> userRoles = new HashSet<>();
|
2018-02-16 11:34:02 +01:00
|
|
|
|
2020-02-11 17:27:54 +01:00
|
|
|
@OneToMany(mappedBy = "lockedBy", fetch = FetchType.LAZY)
|
|
|
|
private Set<Lock> locks = new HashSet<>();
|
|
|
|
|
2020-02-14 17:40:34 +01:00
|
|
|
@OneToMany(mappedBy = "userId", fetch = FetchType.LAZY)
|
|
|
|
private Set<Notification> notifications = new HashSet<>();
|
|
|
|
|
2023-11-16 13:01:39 +01:00
|
|
|
// public Set<DMP> getDmps() {
|
|
|
|
// return dmps;
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
// public void setDmps(Set<DMP> dmps) {
|
|
|
|
// this.dmps = dmps;
|
|
|
|
// }
|
2018-01-31 16:39:16 +01:00
|
|
|
|
2019-05-21 17:17:41 +02:00
|
|
|
public UUID getId() {
|
|
|
|
return id;
|
|
|
|
}
|
2018-02-16 11:34:02 +01:00
|
|
|
|
2019-05-21 17:17:41 +02:00
|
|
|
public void setId(UUID id) {
|
|
|
|
this.id = id;
|
|
|
|
}
|
2018-02-16 11:34:02 +01:00
|
|
|
|
2019-05-21 17:17:41 +02:00
|
|
|
public Date getCreated() {
|
|
|
|
return created;
|
|
|
|
}
|
2018-02-16 11:34:02 +01:00
|
|
|
|
2019-05-21 17:17:41 +02:00
|
|
|
public void setCreated(Date created) {
|
|
|
|
this.created = created;
|
|
|
|
}
|
2018-02-16 11:34:02 +01:00
|
|
|
|
2019-05-21 17:17:41 +02:00
|
|
|
public Date getLastloggedin() {
|
|
|
|
return lastloggedin;
|
|
|
|
}
|
2018-02-16 11:34:02 +01:00
|
|
|
|
2019-05-21 17:17:41 +02:00
|
|
|
public void setLastloggedin(Date lastloggedin) {
|
|
|
|
this.lastloggedin = lastloggedin;
|
|
|
|
}
|
2018-02-16 11:34:02 +01:00
|
|
|
|
2019-05-21 17:17:41 +02:00
|
|
|
public String getEmail() {
|
|
|
|
return email;
|
|
|
|
}
|
2018-02-16 11:34:02 +01:00
|
|
|
|
2019-05-21 17:17:41 +02:00
|
|
|
public void setEmail(String email) {
|
|
|
|
this.email = email;
|
|
|
|
}
|
2018-02-16 11:34:02 +01:00
|
|
|
|
2019-05-21 17:17:41 +02:00
|
|
|
public Short getAuthorization_level() {
|
|
|
|
return authorization_level;
|
|
|
|
}
|
2018-02-16 11:34:02 +01:00
|
|
|
|
2019-05-21 17:17:41 +02:00
|
|
|
public void setAuthorization_level(Short authorization_level) {
|
|
|
|
this.authorization_level = authorization_level;
|
|
|
|
}
|
2018-02-16 11:34:02 +01:00
|
|
|
|
2019-05-21 17:17:41 +02:00
|
|
|
public Short getUsertype() {
|
|
|
|
return usertype;
|
|
|
|
}
|
2018-02-16 11:34:02 +01:00
|
|
|
|
2019-05-21 17:17:41 +02:00
|
|
|
public void setUsertype(Short usertype) {
|
|
|
|
this.usertype = usertype;
|
|
|
|
}
|
2018-02-16 11:34:02 +01:00
|
|
|
|
2019-05-21 17:17:41 +02:00
|
|
|
public Boolean getVerified_email() {
|
|
|
|
return verified_email;
|
|
|
|
}
|
2018-02-16 11:34:02 +01:00
|
|
|
|
2019-05-21 17:17:41 +02:00
|
|
|
public void setVerified_email(Boolean verified_email) {
|
|
|
|
this.verified_email = verified_email;
|
|
|
|
}
|
2018-02-16 11:34:02 +01:00
|
|
|
|
2019-05-21 17:17:41 +02:00
|
|
|
public String getName() {
|
|
|
|
return name;
|
|
|
|
}
|
2018-02-16 11:34:02 +01:00
|
|
|
|
2019-05-21 17:17:41 +02:00
|
|
|
public void setName(String name) {
|
|
|
|
this.name = name;
|
|
|
|
}
|
2018-02-16 11:34:02 +01:00
|
|
|
|
2019-05-21 17:17:41 +02:00
|
|
|
public String getAdditionalinfo() {
|
|
|
|
return additionalinfo;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setAdditionalinfo(String additionalinfo) {
|
|
|
|
this.additionalinfo = additionalinfo;
|
|
|
|
}
|
|
|
|
|
2023-10-16 16:38:12 +02:00
|
|
|
public Set<CredentialEntity> getCredentials() {
|
|
|
|
return credentialEntities;
|
2019-05-21 17:17:41 +02:00
|
|
|
}
|
|
|
|
|
2023-10-16 16:38:12 +02:00
|
|
|
public void setCredentials(Set<CredentialEntity> credentialEntities) {
|
|
|
|
this.credentialEntities = credentialEntities;
|
2019-05-21 17:17:41 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public Set<UserRole> getUserRoles() {
|
|
|
|
return userRoles;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setUserRoles(Set<UserRole> userRoles) {
|
|
|
|
this.userRoles = userRoles;
|
|
|
|
}
|
|
|
|
|
2020-02-11 17:27:54 +01:00
|
|
|
public Set<Lock> getLocks() {
|
|
|
|
return locks;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setLocks(Set<Lock> locks) {
|
|
|
|
this.locks = locks;
|
|
|
|
}
|
|
|
|
|
2020-02-14 17:40:34 +01:00
|
|
|
public Set<Notification> getNotifications() {
|
|
|
|
return notifications;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setNotifications(Set<Notification> notifications) {
|
|
|
|
this.notifications = notifications;
|
|
|
|
}
|
|
|
|
|
2020-10-27 17:06:58 +01:00
|
|
|
public Short getUserStatus() {
|
|
|
|
return userStatus;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setUserStatus(Short userStatus) {
|
|
|
|
this.userStatus = userStatus;
|
|
|
|
}
|
|
|
|
|
2019-05-21 17:17:41 +02:00
|
|
|
@Override
|
|
|
|
public void update(UserInfo entity) {
|
|
|
|
this.name = entity.getName();
|
|
|
|
this.email = entity.getEmail();
|
|
|
|
this.additionalinfo = entity.getAdditionalinfo();
|
|
|
|
this.lastloggedin = entity.getLastloggedin();
|
|
|
|
this.userRoles = entity.getUserRoles();
|
2020-10-27 17:06:58 +01:00
|
|
|
this.userStatus = entity.getUserStatus();
|
2019-05-21 17:17:41 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public UUID getKeys() {
|
|
|
|
return this.id;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public UserInfo buildFromTuple(List<Tuple> tuple, List<String> fields, String base) {
|
|
|
|
String currentBase = base.isEmpty() ? "" : base + ".";
|
|
|
|
if (fields.contains(currentBase + "id")) this.id = EntityBinder.fromTuple(tuple, currentBase + "id");
|
|
|
|
return this;
|
|
|
|
}
|
2017-09-28 12:32:03 +02:00
|
|
|
}
|