package parkup.entities; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.authority.SimpleGrantedAuthority; import org.springframework.security.core.userdetails.UserDetails; import parkup.data.enumarations.UserRole; import javax.persistence.*; import java.util.Collection; import java.util.Collections; @Entity @Table(name = "administrator") public class Administrator implements UserDetails { @Id @SequenceGenerator( name="administrator_sequence_generator", sequenceName = "administrator_sequence", allocationSize = 1, initialValue = 100 ) @GeneratedValue( //za postgres treba sequence da se namesti i ime na generator mi ga davamo kako od gore sto e strategy = GenerationType.SEQUENCE, generator = "administrator_sequence_generator" ) @Column(name = "administratorId") private int administratorId; @Column(name = "firstName") private String firstName; @Column(name = "lastName") private String lastName; @Column(name = "email") private String email; @Column(name = "password") private String password; @Column(name = "mobile") private String mobile; @Enumerated @Column(name = "role") private UserRole role; private boolean locked; private boolean enabled; public Administrator(){ this.role = UserRole.ROLE_ADMIN; this.enabled=true; } public Administrator(int administratorId, String firstName, String lastName, String email, String password, String mobile) { this.administratorId = administratorId; this.firstName = firstName; this.lastName = lastName; this.email = email; this.password = password; this.mobile = mobile; this.enabled=true; this.role = UserRole.ROLE_ADMIN; } public Administrator(String firstName, String lastName, String email, String password, String mobile) { this.firstName = firstName; this.lastName = lastName; this.email = email; this.password = password; this.mobile = mobile; this.role = UserRole.ROLE_ADMIN; this.enabled=true; } public Administrator(String firstName, String lastName, String email, String password) { this.firstName = firstName; this.lastName = lastName; this.email = email; this.password = password; this.mobile = mobile; this.role = UserRole.ROLE_ADMIN; this.enabled=true; } public int getAdministratorId() { return administratorId; } public void setAdministratorId(int administratorId) { this.administratorId = administratorId; } public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public void setPassword(String password) { this.password = password; } public String getMobile() { return mobile; } public void setMobile(String mobile) { this.mobile = mobile; } public UserRole getRole() {return role;} public void setRole(UserRole role) {this.role = role;} @Override public Collection getAuthorities() { SimpleGrantedAuthority authority = new SimpleGrantedAuthority(role.getAuthority()); return Collections.singleton(authority); } @Override public String getPassword() { return password; } @Override public String getUsername() { return email; } @Override public boolean isAccountNonExpired() { return true; } @Override public boolean isAccountNonLocked() { return !locked; } @Override public boolean isCredentialsNonExpired() { return true; } @Override public boolean isEnabled() { return enabled; } }