Untitled
unknown
java
a year ago
2.7 kB
5
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