2018-06-27 12:29:21 +02:00
|
|
|
package eu.eudat.models.data.security;
|
2017-12-15 17:57:41 +01:00
|
|
|
|
2018-01-31 16:39:16 +01:00
|
|
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
|
|
|
import eu.eudat.types.Authorities;
|
|
|
|
|
2020-04-03 17:40:03 +02:00
|
|
|
import java.time.Instant;
|
2018-01-31 16:39:16 +01:00
|
|
|
import java.util.*;
|
|
|
|
import java.util.stream.Collectors;
|
2017-12-15 17:57:41 +01:00
|
|
|
|
2018-02-01 10:08:06 +01:00
|
|
|
|
2017-12-15 17:57:41 +01:00
|
|
|
public class Principal {
|
|
|
|
private UUID id;
|
|
|
|
private UUID token;
|
|
|
|
private String name;
|
2020-07-17 12:15:44 +02:00
|
|
|
private String email;
|
2017-12-15 17:57:41 +01:00
|
|
|
private Date expiresAt;
|
2018-05-28 11:50:42 +02:00
|
|
|
private String avatarUrl;
|
2018-01-31 16:39:16 +01:00
|
|
|
private Set<Authorities> authorities;
|
2018-08-30 13:09:36 +02:00
|
|
|
private String culture;
|
|
|
|
private String language;
|
|
|
|
private String timezone;
|
2020-04-03 17:40:03 +02:00
|
|
|
private String zenodoToken;
|
|
|
|
private Instant zenodoDuration;
|
2020-04-10 16:16:37 +02:00
|
|
|
private String zenodoRefresh;
|
|
|
|
private String zenodoEmail;
|
2017-12-15 17:57:41 +01:00
|
|
|
|
|
|
|
public UUID getId() {
|
|
|
|
return id;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setId(UUID id) {
|
|
|
|
this.id = id;
|
|
|
|
}
|
|
|
|
|
|
|
|
public UUID getToken() {
|
|
|
|
return token;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setToken(UUID token) {
|
|
|
|
this.token = token;
|
|
|
|
}
|
|
|
|
|
|
|
|
public String getName() {
|
|
|
|
return name;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setName(String name) {
|
|
|
|
this.name = name;
|
|
|
|
}
|
|
|
|
|
2020-07-17 12:15:44 +02:00
|
|
|
public String getEmail() {
|
|
|
|
return email;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setEmail(String email) {
|
|
|
|
this.email = email;
|
|
|
|
}
|
|
|
|
|
2017-12-15 17:57:41 +01:00
|
|
|
public Date getExpiresAt() {
|
|
|
|
return expiresAt;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setExpiresAt(Date expiresAt) {
|
|
|
|
this.expiresAt = expiresAt;
|
|
|
|
}
|
|
|
|
|
2018-05-28 11:50:42 +02:00
|
|
|
public String getAvatarUrl() {
|
|
|
|
return avatarUrl;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setAvatarUrl(String avatarUrl) {
|
|
|
|
this.avatarUrl = avatarUrl;
|
|
|
|
}
|
|
|
|
|
2018-01-31 16:39:16 +01:00
|
|
|
public Set<Integer> getAuthorities() {
|
|
|
|
return authorities.stream().map(authz -> authz.getValue()).collect(Collectors.toSet());
|
|
|
|
}
|
|
|
|
|
2018-08-30 13:09:36 +02:00
|
|
|
public String getCulture() {
|
|
|
|
return culture;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setCulture(String culture) {
|
|
|
|
this.culture = culture;
|
|
|
|
}
|
|
|
|
|
|
|
|
public String getLanguage() {
|
|
|
|
return language;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setLanguage(String language) {
|
|
|
|
this.language = language;
|
|
|
|
}
|
|
|
|
|
|
|
|
public String getTimezone() {
|
|
|
|
return timezone;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setTimezone(String timezone) {
|
|
|
|
this.timezone = timezone;
|
|
|
|
}
|
|
|
|
|
2020-04-03 17:40:03 +02:00
|
|
|
public String getZenodoToken() {
|
|
|
|
return zenodoToken;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setZenodoToken(String zenodoToken) {
|
|
|
|
this.zenodoToken = zenodoToken;
|
|
|
|
}
|
|
|
|
|
|
|
|
public Instant getZenodoDuration() {
|
|
|
|
return zenodoDuration;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setZenodoDuration(Instant zenodoDuration) {
|
|
|
|
this.zenodoDuration = zenodoDuration;
|
|
|
|
}
|
|
|
|
|
2020-04-10 16:16:37 +02:00
|
|
|
public String getZenodoRefresh() {
|
|
|
|
return zenodoRefresh;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setZenodoRefresh(String zenodoRefresh) {
|
|
|
|
this.zenodoRefresh = zenodoRefresh;
|
|
|
|
}
|
|
|
|
|
|
|
|
public String getZenodoEmail() {
|
|
|
|
return zenodoEmail;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setZenodoEmail(String zenodoEmail) {
|
|
|
|
this.zenodoEmail = zenodoEmail;
|
|
|
|
}
|
|
|
|
|
2018-01-31 16:39:16 +01:00
|
|
|
@JsonIgnore
|
|
|
|
public Set<Authorities> getAuthz() {
|
|
|
|
return this.authorities;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setAuthorities(Set<Authorities> authorities) {
|
|
|
|
this.authorities = authorities;
|
2017-12-15 17:57:41 +01:00
|
|
|
}
|
|
|
|
|
2018-01-31 16:39:16 +01:00
|
|
|
public boolean isAuthorized(List<Authorities> requiredAuthorities) {
|
2018-02-16 11:34:02 +01:00
|
|
|
if (!Collections.disjoint(this.authorities, requiredAuthorities) || requiredAuthorities.size() == 0)
|
|
|
|
return true;
|
2018-01-31 16:39:16 +01:00
|
|
|
else return false;
|
2017-12-15 17:57:41 +01:00
|
|
|
}
|
|
|
|
}
|