source: phonelux-backend/src/main/java/finki/it/phoneluxbackend/entities/User.java@ dfd5d87

Last change on this file since dfd5d87 was dfd5d87, checked in by Marko <Marko@…>, 22 months ago

Registration logic with confirmation token implemented

  • Property mode set to 100644
File size: 2.0 KB
Line 
1package finki.it.phoneluxbackend.entities;
2
3import finki.it.phoneluxbackend.data.UserRole;
4import lombok.*;
5import org.springframework.security.core.GrantedAuthority;
6import org.springframework.security.core.authority.SimpleGrantedAuthority;
7import org.springframework.security.core.userdetails.UserDetails;
8
9import javax.persistence.*;
10import java.util.Collection;
11import java.util.Collections;
12
13@Getter
14@Setter
15@EqualsAndHashCode
16@NoArgsConstructor
17@AllArgsConstructor
18@Entity(name = "users")
19public class User implements UserDetails {
20
21 @SequenceGenerator(
22 name = "user_sequence",
23 sequenceName = "user_sequence",
24 allocationSize = 1
25 )
26 @Id
27 @GeneratedValue(
28 strategy = GenerationType.SEQUENCE,
29 generator = "user_sequence"
30 )
31 private Long id;
32 private String firstName;
33 private String lastName;
34 private String email;
35 private String password;
36 @Enumerated(EnumType.STRING)
37 private UserRole userRole;
38 private Boolean locked = false;
39 private Boolean enabled = false;
40
41 public User(String firstName, String lastName, String email, String password, UserRole userRole) {
42 this.firstName = firstName;
43 this.lastName = lastName;
44 this.email = email;
45 this.password = password;
46 this.userRole = userRole;
47 }
48
49 @Override
50 public Collection<? extends GrantedAuthority> getAuthorities() {
51 SimpleGrantedAuthority authority = new SimpleGrantedAuthority(userRole.name());
52 return Collections.singletonList(authority);
53 }
54
55 @Override
56 public String getPassword() {
57 return password;
58 }
59
60 @Override
61 public String getUsername() {
62 return email;
63 }
64
65 @Override
66 public boolean isAccountNonExpired() {
67 return true;
68 }
69
70 @Override
71 public boolean isAccountNonLocked() {
72 return !locked;
73 }
74
75 @Override
76 public boolean isCredentialsNonExpired() {
77 return true;
78 }
79
80 @Override
81 public boolean isEnabled() {
82 return enabled;
83 }
84}
Note: See TracBrowser for help on using the repository browser.