source: src/main/java/mk/ukim/finki/eglas/model/UserProfile.java@ ac151d1

main
Last change on this file since ac151d1 was ac151d1, checked in by David <darsov2@…>, 11 days ago

initial

  • Property mode set to 100644
File size: 1.9 KB
Line 
1package mk.ukim.finki.eglas.model;
2
3import jakarta.persistence.*;
4import lombok.Data;
5import org.springframework.security.core.GrantedAuthority;
6import org.springframework.security.core.authority.SimpleGrantedAuthority;
7import org.springframework.security.core.userdetails.UserDetails;
8
9import java.util.Collection;
10import java.util.List;
11
12@Entity
13@Data
14@Table(name = "korisnicki_profil")
15public class UserProfile implements UserDetails {
16 @Override
17 public Collection<? extends GrantedAuthority> getAuthorities() {
18 if (isSuperAdmin)
19 return List.of(new SimpleGrantedAuthority("ROLE_SUPER_ADMIN"),
20 new SimpleGrantedAuthority("ROLE_ADMIN"),
21 new SimpleGrantedAuthority("ROLE_COMMITTEE"));
22 if (isAdmin)
23 return List.of(new SimpleGrantedAuthority("ROLE_ADMIN"),
24 new SimpleGrantedAuthority("ROLE_COMMITTEE"));
25 if (isCommittee)
26 return List.of(new SimpleGrantedAuthority("ROLE_COMMITTEE"));
27 return List.of(new SimpleGrantedAuthority("ROLE_USER"));
28 }
29
30 @Override
31 public String getUsername() {
32 return userName;
33 }
34
35 @Override
36 public boolean isAccountNonExpired() {
37 return true;
38 }
39
40 @Override
41 public boolean isAccountNonLocked() {
42 return true;
43 }
44
45 @Override
46 public boolean isCredentialsNonExpired() {
47 return true;
48 }
49
50 @Override
51 public boolean isEnabled() {
52 return true;
53 }
54
55 @Id
56 @GeneratedValue(strategy = GenerationType.IDENTITY)
57 @Column(name = "kp_id")
58 Long id;
59 @Column(name = "kp_korisnicko_ime")
60 String userName;
61 @Column(name = "kp_lozinka")
62 String password;
63 @Column(name = "kp_uloga")
64 String role;
65 @OneToOne
66 @JoinColumn(name = "g_id")
67 Citizen citizen;
68 Boolean isCommittee;
69 Boolean isAdmin;
70 Boolean isSuperAdmin;
71}
Note: See TracBrowser for help on using the repository browser.