168 lines
4.6 KiB
Plaintext
168 lines
4.6 KiB
Plaintext
package com.healthcare.ohctech.entity;
|
|
|
|
import com.fasterxml.jackson.annotation.JsonManagedReference;
|
|
import jakarta.persistence.*;
|
|
import org.springframework.security.core.GrantedAuthority;
|
|
import org.springframework.security.core.authority.SimpleGrantedAuthority;
|
|
import org.springframework.security.core.userdetails.UserDetails;
|
|
|
|
import java.util.Collection;
|
|
import java.util.Set;
|
|
import java.util.stream.Collectors;
|
|
|
|
@Entity
|
|
@Table(name = "users")
|
|
public class User implements UserDetails {
|
|
/**
|
|
*
|
|
*/
|
|
private static final long serialVersionUID = 1L;
|
|
|
|
@Id
|
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
|
@Column(name = "id")
|
|
private Long id;
|
|
|
|
@Column(nullable = false, unique = true)
|
|
private String username;
|
|
|
|
@Column(nullable = false)
|
|
private String password;
|
|
|
|
@Column(name = "is_account_non_locked")
|
|
private Boolean isAccountNonLocked;
|
|
|
|
@Column(name = "is_enabled")
|
|
private Boolean isEnabled;
|
|
|
|
@Column(name = "is_credentials_non_expired")
|
|
private Boolean isCredentialsNonExpired;
|
|
|
|
@Column(name = "is_account_non_expired")
|
|
private Boolean isAccountNonExpired;
|
|
|
|
@Column(name = "failed_attempt")
|
|
private Integer failedAttempt = 0;
|
|
|
|
@ManyToMany(fetch = FetchType.EAGER, cascade = {CascadeType.MERGE, CascadeType.PERSIST})
|
|
@JoinTable(name = "users_roles", joinColumns = @JoinColumn(name = "user_id", referencedColumnName = "id"), inverseJoinColumns = @JoinColumn(name = "role_id", referencedColumnName = "id"))
|
|
@JsonManagedReference
|
|
private Set<Role> roles;
|
|
|
|
@ManyToMany(fetch = FetchType.EAGER, cascade = {CascadeType.MERGE, CascadeType.PERSIST})
|
|
@JoinTable(name = "users_ohcs", joinColumns = @JoinColumn(name = "user_id", referencedColumnName = "id"), inverseJoinColumns = @JoinColumn(name = "ohc_id", referencedColumnName = "id"))
|
|
@JsonManagedReference
|
|
private Set<OhcType> ohcTypes;
|
|
|
|
@OneToOne(mappedBy = "user", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
|
|
private RefreshToken refreshToken;
|
|
|
|
@Override
|
|
public Collection<? extends GrantedAuthority> getAuthorities() {
|
|
return roles.stream().map(role -> new SimpleGrantedAuthority(role.getRoleName())).collect(Collectors.toSet());
|
|
}
|
|
|
|
@Override
|
|
public String getPassword() {
|
|
return password;
|
|
}
|
|
|
|
public void setPassword(String password) {
|
|
this.password = password;
|
|
}
|
|
|
|
@Override
|
|
public String getUsername() {
|
|
return username;
|
|
}
|
|
|
|
public void setUsername(String username) {
|
|
this.username = username;
|
|
}
|
|
|
|
@Override
|
|
public boolean isAccountNonExpired() {
|
|
return isAccountNonExpired;
|
|
}
|
|
|
|
public void setAccountNonExpired(Boolean accountNonExpired) {
|
|
isAccountNonExpired = accountNonExpired;
|
|
}
|
|
|
|
@Override
|
|
public boolean isAccountNonLocked() {
|
|
return isAccountNonLocked;
|
|
}
|
|
|
|
public void setAccountNonLocked(Boolean accountNonLocked) {
|
|
isAccountNonLocked = accountNonLocked;
|
|
}
|
|
|
|
@Override
|
|
public boolean isCredentialsNonExpired() {
|
|
return isCredentialsNonExpired;
|
|
}
|
|
|
|
public void setCredentialsNonExpired(Boolean credentialsNonExpired) {
|
|
isCredentialsNonExpired = credentialsNonExpired;
|
|
}
|
|
|
|
@Override
|
|
public boolean isEnabled() {
|
|
return isEnabled;
|
|
}
|
|
|
|
public void setEnabled(Boolean enabled) {
|
|
isEnabled = enabled;
|
|
}
|
|
|
|
public Long getId() {
|
|
return id;
|
|
}
|
|
|
|
public void setId(Long id) {
|
|
this.id = id;
|
|
}
|
|
|
|
public RefreshToken getRefreshToken() {
|
|
return refreshToken;
|
|
}
|
|
|
|
public void setRefreshToken(RefreshToken refreshToken) {
|
|
this.refreshToken = refreshToken;
|
|
}
|
|
|
|
public Integer getFailedAttempt() {
|
|
return failedAttempt;
|
|
}
|
|
|
|
public void setFailedAttempt(Integer failedAttempt) {
|
|
this.failedAttempt = failedAttempt;
|
|
}
|
|
|
|
public Set<Role> getRoles() {
|
|
return roles;
|
|
}
|
|
|
|
public void setRoles(Set<Role> roles) {
|
|
this.roles = roles;
|
|
}
|
|
|
|
public Set<OhcType> getOhcTypes() {
|
|
return ohcTypes;
|
|
}
|
|
|
|
public void setOhcTypes(Set<OhcType> ohcTypes) {
|
|
this.ohcTypes = ohcTypes;
|
|
}
|
|
|
|
@Override
|
|
public String toString() {
|
|
return "User{" + "id=" + id + ", username='" + username + '\'' + ", isAccountNonLocked=" + isAccountNonLocked
|
|
+ ", isEnabled=" + isEnabled + ", isCredentialsNonExpired=" + isCredentialsNonExpired
|
|
+ ", isAccountNonExpired=" + isAccountNonExpired + ", failedAttempt=" + failedAttempt + ", roles="
|
|
+ roles + ", ohcTypes=" + ohcTypes + ", refreshToken=" + refreshToken + '}';
|
|
}
|
|
|
|
}
|