package io.lumify.core.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.util.*;
public class InMemoryUser implements User {
private final String userId;
private final String userName;
private final String displayName;
private final String emailAddress;
private final Date createDate;
private Set<Privilege> privileges;
private final List<String> authorizations;
private final String currentWorkspaceId;
private JSONObject preferences;
private Date currentLoginDate;
private String currentLoginRemoteAddr;
private Date previousLoginDate;
private String previousLoginRemoteAddr;
private int loginCount;
private String passwordResetToken;
private Date passwordResetTokenExpirationDate;
public InMemoryUser(String userName, String displayName, String emailAddress, Set<Privilege> privileges, String[] authorizations, String currentWorkspaceId) {
this.userId = UUID.randomUUID().toString();
this.userName = userName;
this.displayName = displayName;
this.emailAddress = emailAddress;
this.createDate = new Date();
this.privileges = privileges;
this.authorizations = new ArrayList<String>();
Collections.addAll(this.authorizations, authorizations);
this.currentWorkspaceId = currentWorkspaceId;
this.preferences = new JSONObject();
}
@Override
public ModelUserContext getModelUserContext() {
throw new RuntimeException("not implemented");
}
@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() {
throw new RuntimeException("not implemented");
}
@Override
public String getCurrentWorkspaceId() {
return this.currentWorkspaceId;
}
public Set<Privilege> getPrivileges() {
return this.privileges;
}
public String[] getAuthorizations() {
return authorizations.toArray(new String[this.authorizations.size()]);
}
public void setPrivileges(Set<Privilege> privileges) {
this.privileges = privileges;
}
@Override
public JSONObject getUiPreferences() {
return preferences;
}
public void setPreferences(JSONObject preferences) {
this.preferences = preferences;
}
@Override
public String getPasswordResetToken() {
return passwordResetToken;
}
@Override
public Date getPasswordResetTokenExpirationDate() {
return passwordResetTokenExpirationDate;
}
}