package io.lumify.securegraph.model.user; import com.altamiracorp.bigtable.model.user.ModelUserContext; import io.lumify.core.user.User; import io.lumify.web.clientapi.model.Privilege; import io.lumify.web.clientapi.model.UserStatus; import io.lumify.web.clientapi.model.UserType; import org.json.JSONObject; import java.io.Serializable; import java.util.Date; import java.util.Set; public class SecureGraphUser implements User, Serializable { private static final long serialVersionUID = 6688073934273514248L; private ModelUserContext modelUserContext; private String userId; private String username; private String displayName; private String emailAddress; private Date createDate; private Date currentLoginDate; private String currentLoginRemoteAddr; private Date previousLoginDate; private String previousLoginRemoteAddr; private int loginCount; private UserStatus userStatus; private Set<Privilege> privileges; private String currentWorkspaceId; private JSONObject preferences; private String passwordResetToken; private Date passwordResetTokenExpirationDate; // required for Serializable protected SecureGraphUser() { } public SecureGraphUser(String userId, String username, String displayName, String emailAddress, Date createDate, Date currentLoginDate, String currentLoginRemoteAddr, Date previousLoginDate, String previousLoginRemoteAddr, int loginCount, ModelUserContext modelUserContext, UserStatus userStatus, Set<Privilege> privileges, String currentWorkspaceId, JSONObject preferences, String passwordResetToken, Date passwordResetTokenExpirationDate) { this.userId = userId; this.username = username; this.displayName = displayName; this.emailAddress = emailAddress; this.createDate = createDate; this.currentLoginDate = currentLoginDate; this.currentLoginRemoteAddr = currentLoginRemoteAddr; this.previousLoginDate = previousLoginDate; this.previousLoginRemoteAddr = previousLoginRemoteAddr; this.loginCount = loginCount; this.modelUserContext = modelUserContext; this.userStatus = userStatus; this.privileges = privileges; this.currentWorkspaceId = currentWorkspaceId; this.preferences = preferences; if (this.preferences == null) { this.preferences = new JSONObject(); } this.passwordResetToken = passwordResetToken; this.passwordResetTokenExpirationDate = passwordResetTokenExpirationDate; } @Override public ModelUserContext getModelUserContext() { return modelUserContext; } @Override public String getUserId() { return userId; } @Override public String getUsername() { return username; } @Override public String getDisplayName() { return displayName; } @Override public String getEmailAddress() { return emailAddress; } @Override public Date getCreateDate() { return createDate; } @Override public Date getCurrentLoginDate() { return currentLoginDate; } @Override public String getCurrentLoginRemoteAddr() { return currentLoginRemoteAddr; } @Override public Date getPreviousLoginDate() { return previousLoginDate; } @Override public String getPreviousLoginRemoteAddr() { return previousLoginRemoteAddr; } @Override public int getLoginCount() { return loginCount; } @Override public UserType getUserType() { return UserType.USER; } @Override public UserStatus getUserStatus() { return userStatus; } public void setUserStatus(UserStatus status) { this.userStatus = status; } @Override public Set<Privilege> getPrivileges() { return privileges; } @Override public String getCurrentWorkspaceId() { return currentWorkspaceId; } @Override public JSONObject getUiPreferences() { return preferences; } @Override public String getPasswordResetToken() { return passwordResetToken; } @Override public Date getPasswordResetTokenExpirationDate() { return passwordResetTokenExpirationDate; } @Override public String toString() { return "SecureGraphUser{userId='" + getUserId() + "', displayName='" + getDisplayName() + "', privileges=" + getPrivileges() + "}"; } }