base.security.Person Maven / Gradle / Ivy
/**
* Creative commons Attribution-NonCommercial license.
*
* http://creativecommons.org/licenses/by-nc/2.5/au/deed.en_GB
*
* NO WARRANTY IS GIVEN OR IMPLIED, USE AT YOUR OWN RISK.
*/
package base.security;
import java.util.Date;
import java.util.UUID;
import base.QueryResult;
import base.json.Json;
public class Person implements QueryResult, Comparable {
private UUID uuid;
private String firstName;
private String lastName;
private String email;
private Date lastAuth;
private String lastAuthIp;
private Date created;
private Date updated;
private Date expiry;
/** Username is used to authenticate when we are connected to LDAP */
private String username;
public Person() {
}
public Person(UUID uuid, String firstName, String lastName) {
this.uuid = uuid;
this.firstName = firstName;
this.lastName = lastName;
}
public UUID getUuid() {
return uuid;
}
public void setUuid(UUID uuid) {
this.uuid = uuid;
}
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 String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public Date getLastAuth() {
return lastAuth;
}
public void setLastAuth(Date lastAuth) {
this.lastAuth = lastAuth;
}
public String getLastAuthIp() {
return lastAuthIp;
}
public void setLastAuthIp(String lastAuthIp) {
this.lastAuthIp = lastAuthIp;
}
public Date getCreated() {
return created;
}
public void setCreated(Date created) {
this.created = created;
}
public Date getUpdated() {
return updated;
}
public void setUpdated(Date updated) {
this.updated = updated;
}
public Date getExpiry() {
return expiry;
}
public void setExpiry(Date expiry) {
this.expiry = expiry;
}
public String toString() {
return toJson();
}
public boolean isExpired() {
return expiry != null && expiry.getTime() < new Date().getTime();
}
public String getDisplayName() {
String name = (firstName + " " + lastName).trim();
if(name.length() == 0) {
name = "Unknown";
}
return name;
}
@Override
public String toJson() {
return "{" +
"\"first_name\":\"" + Json.escape(firstName) + "\"," +
"\"last_name\":\"" + Json.escape(lastName) + "\"," +
(email == null?"":"\"email\":\"" + Json.escape(email) + "\",") +
(username == null?"":"\"username\":\"" + Json.escape(username) + "\",") +
(lastAuth == null?"":"\"last_auth\":\"" + Json.toDateTime(lastAuth) + "\",") +
(lastAuthIp == null?"":"\"last_auth_ip\":\"" + Json.escape(lastAuthIp) + "\",") +
(created == null?"":"\"created\":" + Json.toDateTime(created) + ",") +
(updated == null?"":"\"updated\":" + Json.toDateTime(updated) + ",") +
(expiry == null?"":"\"expiry\":" + Json.toDateTime(expiry) + ",") +
"\"uuid\":\"" + uuid + "\"" +
"}";
}
@Override
public int compareTo(Person o) {
return getDisplayName().compareTo(o.getDisplayName());
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy