2 * In Samsung Ukraine R&D Center (SRK under a contract between)
3 * LLC "Samsung Electronics Co", Ltd (Seoul, Republic of Korea)
4 * Copyright (C) 2018 Samsung Electronics Co., Ltd. All rights reserved.
6 package com.samsung.samserver.domain;
8 import com.fasterxml.jackson.annotation.JsonIgnore;
9 import com.samsung.samserver.config.Constants;
10 import org.apache.commons.lang3.StringUtils;
11 import org.hibernate.annotations.BatchSize;
12 import org.hibernate.validator.constraints.Email;
14 import javax.persistence.*;
15 import javax.validation.constraints.NotNull;
16 import javax.validation.constraints.Pattern;
17 import javax.validation.constraints.Size;
18 import java.io.Serializable;
19 import java.util.HashSet;
20 import java.util.Locale;
21 import java.util.Objects;
23 import java.time.Instant;
29 @Table(name = "jhi_user")
31 public class User extends AbstractAuditingEntity implements Serializable {
33 private static final long serialVersionUID = 1L;
36 @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sequenceGenerator")
37 @SequenceGenerator(name = "sequenceGenerator")
41 @Pattern(regexp = Constants.LOGIN_REGEX)
42 @Size(min = 1, max = 50)
43 @Column(length = 50, unique = true, nullable = false)
48 @Size(min = 60, max = 60)
49 @Column(name = "password_hash", length = 60)
50 private String password;
53 @Column(name = "first_name", length = 50)
54 private String firstName;
57 @Column(name = "last_name", length = 50)
58 private String lastName;
61 @Size(min = 5, max = 100)
62 @Column(length = 100, unique = true)
66 @Column(nullable = false)
67 private boolean activated = false;
69 @Size(min = 2, max = 6)
70 @Column(name = "lang_key", length = 6)
71 private String langKey;
74 @Column(name = "image_url", length = 256)
75 private String imageUrl;
78 @Column(name = "activation_key", length = 20)
80 private String activationKey;
83 @Column(name = "reset_key", length = 20)
85 private String resetKey;
87 @Column(name = "reset_date")
88 private Instant resetDate = null;
93 name = "jhi_user_authority",
94 joinColumns = {@JoinColumn(name = "user_id", referencedColumnName = "id")},
95 inverseJoinColumns = {@JoinColumn(name = "authority_name", referencedColumnName = "name")})
98 private Set<Authority> authorities = new HashSet<>();
100 public Long getId() {
104 public void setId(Long id) {
108 public String getLogin() {
112 // Lowercase the login before saving it in database
113 public void setLogin(String login) {
114 this.login = StringUtils.lowerCase(login, Locale.ENGLISH);
117 public String getPassword() {
121 public void setPassword(String password) {
122 this.password = password;
125 public String getFirstName() {
129 public void setFirstName(String firstName) {
130 this.firstName = firstName;
133 public String getLastName() {
137 public void setLastName(String lastName) {
138 this.lastName = lastName;
141 public String getEmail() {
145 public void setEmail(String email) {
149 public String getImageUrl() {
153 public void setImageUrl(String imageUrl) {
154 this.imageUrl = imageUrl;
157 public boolean getActivated() {
161 public void setActivated(boolean activated) {
162 this.activated = activated;
165 public String getActivationKey() {
166 return activationKey;
169 public void setActivationKey(String activationKey) {
170 this.activationKey = activationKey;
173 public String getResetKey() {
177 public void setResetKey(String resetKey) {
178 this.resetKey = resetKey;
181 public Instant getResetDate() {
185 public void setResetDate(Instant resetDate) {
186 this.resetDate = resetDate;
189 public String getLangKey() {
193 public void setLangKey(String langKey) {
194 this.langKey = langKey;
197 public Set<Authority> getAuthorities() {
201 public void setAuthorities(Set<Authority> authorities) {
202 this.authorities = authorities;
206 public boolean equals(Object o) {
210 if (o == null || getClass() != o.getClass()) {
214 User user = (User) o;
215 return !(user.getId() == null || getId() == null) && Objects.equals(getId(), user.getId());
219 public int hashCode() {
220 return Objects.hashCode(getId());
224 public String toString() {
226 "login='" + login + '\'' +
227 ", firstName='" + firstName + '\'' +
228 ", lastName='" + lastName + '\'' +
229 ", email='" + email + '\'' +
230 ", imageUrl='" + imageUrl + '\'' +
231 ", activated='" + activated + '\'' +
232 ", langKey='" + langKey + '\'' +
233 ", activationKey='" + activationKey + '\'' +