All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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