source: jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/models/users/User.java@ d8b6c91

main
Last change on this file since d8b6c91 was d8b6c91, checked in by 223021 <daniel.ilievski.2@…>, 7 weeks ago

Initial commit - implementirano registracija i logiranje so Spring Security i JSON Web Token-i vo backend-ot kako i navbar i formi za istoto vo frontend-ot

  • Property mode set to 100644
File size: 1.5 KB
Line 
1package mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.models.users;
2
3import jakarta.persistence.*;
4import lombok.AllArgsConstructor;
5import lombok.Builder;
6import lombok.Data;
7import lombok.NoArgsConstructor;
8import mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.models.enumerations.Role;
9import org.springframework.security.core.GrantedAuthority;
10import org.springframework.security.core.authority.SimpleGrantedAuthority;
11import org.springframework.security.core.userdetails.UserDetails;
12
13import java.util.Collection;
14import java.util.List;
15
16@Entity
17@Inheritance(strategy = InheritanceType.JOINED)
18@Table(name = "users")
19@Data
20@NoArgsConstructor
21@AllArgsConstructor
22public abstract class User implements UserDetails {
23
24 @Id
25 @GeneratedValue(strategy = GenerationType.IDENTITY)
26 private Long id;
27
28 protected String email;
29
30 protected String password;
31
32 @Enumerated(EnumType.STRING)
33 protected Role role;
34
35
36 @Override
37 public Collection<? extends GrantedAuthority> getAuthorities() {
38 return List.of(new SimpleGrantedAuthority(role.name()));
39 }
40
41 @Override
42 public String getUsername() {
43 return this.email;
44 }
45
46 public abstract String getName();
47
48 @Override
49 public boolean isAccountNonExpired() {
50 return true;
51 }
52
53 @Override
54 public boolean isAccountNonLocked() {
55 return true;
56 }
57
58 @Override
59 public boolean isCredentialsNonExpired() {
60 return true;
61 }
62
63 @Override
64 public boolean isEnabled() {
65 return true;
66 }
67}
Note: See TracBrowser for help on using the repository browser.