package org.joget.directory.model;
import org.joget.commons.spring.model.Auditable;
import java.io.Serializable;
import java.util.Set;
import org.joget.commons.util.StringUtil;
import org.joget.commons.util.TimeZoneUtil;
import org.springmodules.validation.bean.conf.loader.annotation.handler.NotBlank;
import org.springmodules.validation.bean.conf.loader.annotation.handler.RegExp;
public class User implements Serializable, Auditable {
public static final int ACTIVE = 1;
public static final int INACTIVE = 0;
private String id;
@NotBlank
@RegExp(value = "^[\\.@0-9a-zA-Z_-]+$")
private String username;
private String password;
@NotBlank
private String firstName;
private String lastName;
private String email;
private Integer active;
private String timeZone;
private String locale;
//join
private Set roles;
private Set groups;
private Set employments;
//additional field
private String oldPassword;
private String confirmPassword;
private Boolean readonly = false;
public static final String LOGIN_HASH_DELIMINATOR = "::";
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
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 Integer getActive() {
return active;
}
public void setActive(Integer active) {
this.active = active;
}
public String getTimeZone() {
return timeZone;
}
public void setTimeZone(String timeZone) {
this.timeZone = timeZone;
}
public String getLocale() {
return locale;
}
public void setLocale(String locale) {
this.locale = locale;
}
public String getTimeZoneLabel() {
return TimeZoneUtil.getList().get(getTimeZone());
}
public Set getRoles() {
return roles;
}
public void setRoles(Set roles) {
this.roles = roles;
}
public Set getGroups() {
return groups;
}
public void setGroups(Set groups) {
this.groups = groups;
}
public Set getEmployments() {
return employments;
}
public void setEmployments(Set employments) {
this.employments = employments;
}
public String getConfirmPassword() {
return confirmPassword;
}
public void setConfirmPassword(String confirmPassword) {
this.confirmPassword = confirmPassword;
}
public String getOldPassword() {
return oldPassword;
}
public void setOldPassword(String oldPassword) {
this.oldPassword = oldPassword;
}
public Boolean getReadonly() {
return readonly;
}
public void setReadonly(Boolean readonly) {
this.readonly = readonly;
}
public String getAuditTrailId() {
return username;
}
public String getLoginHash() {
return StringUtil.md5(username + LOGIN_HASH_DELIMINATOR + password);
}
}