Untitled
unknown
java
a year ago
2.7 kB
8
Indexable
@Entity
@Data
@NoArgsConstructor
@Table(name = "_user")
@EntityListeners(AuditingEntityListener.class)
public class User implements UserDetails, Principal {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Enumerated(EnumType.STRING)
private Role role;
@OneToOne(mappedBy = "user")
private VerificationCode verificationCode;
@OneToMany(mappedBy = "user", fetch = FetchType.EAGER)
private List<UserConnectedAccount> connectedAccounts = new ArrayList<>();
@Column(unique = true)
private String username;
private String profileImageUrl;
@JsonIgnore
private String password;
private String firstName;
private String lastName;
private boolean isOnboardingComplete;
@Column(unique = true)
private String email;
@CreatedDate
@Column(nullable = false, updatable = false)
private LocalDateTime createdAt;
@LastModifiedDate
@Column(insertable = false)
private LocalDateTime updatedAt;
private boolean emailVerified;
private boolean enabled;
public User(RegisterDTO data) {
PasswordEncoder passwordEncoder = ApplicationContextProvider.bean(PasswordEncoder.class);
this.email = data.getEmail();
this.password = passwordEncoder.encode(data.getPassword());
this.firstName = data.getFirstName();
this.lastName = data.getLastName();
this.role = Role.USER;
this.enabled = true;
this.emailVerified = false;
}
public void addConnectedAccount(UserConnectedAccount connectedAccount) {
connectedAccounts.add(connectedAccount);
}
@Override
public String getName() {
return email;
}
@Override
public Collection<? extends GrantedAuthority> getAuthorities() {
return Collections.singleton(new SimpleGrantedAuthority("ROLE_" +
role.name()));
}
@Override
public String getPassword() {
return password;
}
@Override
public String getUsername() {
return username;
}
@Override
public boolean isAccountNonExpired() {
return true;
}
@Override
public boolean isAccountNonLocked() {
return true;
}
@Override
public boolean isCredentialsNonExpired() {
return true;
}
@Override
public boolean isEnabled() {
return enabled;
}
public String getFullName() {
return firstName + " " + lastName;
}
public boolean isOnboardingComplete() {
return isOnboardingComplete;
}
public void setOnboardingComplete(boolean onboardingComplete) {
this.isOnboardingComplete = onboardingComplete;
}
}Editor is loading...
Leave a Comment