package ch.rasc.sec.entity; import java.time.LocalDateTime; import java.util.Set; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.JoinColumn; import javax.persistence.JoinTable; import javax.persistence.ManyToMany; import javax.persistence.Table; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import org.hibernate.validator.constraints.Email; import org.springframework.data.jpa.domain.AbstractPersistable; @Entity @Table(name = "AppUser") public class User extends AbstractPersistable<Long> { private static final long serialVersionUID = 1L; @NotNull @Size(max = 100) @Column(unique = true) private String userName; @Size(max = 255) private String name; @Size(max = 255) private String firstName; @Email @Size(max = 255) @NotNull @Column(unique = true) private String email; @Size(max = 80) private String passwordHash; @Size(max = 8) private String locale; private boolean enabled; @ManyToMany(fetch = FetchType.EAGER) @JoinTable(name = "AppUserRoles", joinColumns = @JoinColumn(name = "userId"), inverseJoinColumns = @JoinColumn(name = "roleId")) private Set<Role> roles; private Integer failedLogins; private LocalDateTime lockedOut; private LocalDateTime expirationDate; @Size(max = 16) private String secret; public String getUserName() { return this.userName; } public void setUserName(String userName) { this.userName = userName; } public String getName() { return this.name; } public void setName(String name) { this.name = name; } public String getFirstName() { return this.firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getEmail() { return this.email; } public void setEmail(String email) { this.email = email; } public String getPasswordHash() { return this.passwordHash; } public void setPasswordHash(String passwordHash) { this.passwordHash = passwordHash; } public void setRoles(Set<Role> roles) { this.roles = roles; } public Set<Role> getRoles() { return this.roles; } public boolean isEnabled() { return this.enabled; } public void setEnabled(boolean enabled) { this.enabled = enabled; } public String getLocale() { return this.locale; } public void setLocale(String locale) { this.locale = locale; } public Integer getFailedLogins() { return this.failedLogins; } public void setFailedLogins(Integer failedLogins) { this.failedLogins = failedLogins; } public LocalDateTime getLockedOut() { return this.lockedOut; } public void setLockedOut(LocalDateTime lockedOut) { this.lockedOut = lockedOut; } public LocalDateTime getExpirationDate() { return this.expirationDate; } public void setExpirationDate(LocalDateTime expirationDate) { this.expirationDate = expirationDate; } public String getSecret() { return this.secret; } public void setSecret(String secret) { this.secret = secret; } }