package io.cattle.platform.iaas.api.auth.projects;
import io.cattle.platform.api.auth.Identity;
import io.cattle.platform.core.model.ProjectMember;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
import org.apache.commons.lang3.builder.ToStringBuilder;
public class Member {
private final String profilePicture;
private final String profileUrl;
private final String login;
private final String externalId;
private final String externalIdType;
private final String role;
private final String name;
private final String projectId;
public Member(ProjectMember projectMember, String projectId) {
this.externalId = projectMember.getExternalId();
this.externalIdType = projectMember.getExternalIdType();
this.role = projectMember.getRole();
this.name = projectMember.getName();
profilePicture = null;
profileUrl = null;
login = null;
this.projectId = projectId;
}
public Member(Identity identity, String role) {
this.externalId = identity.getExternalId();
this.externalIdType = identity.getExternalIdType();
this.role = role;
this.name = identity.getName();
this.login = identity.getLogin();
this.profileUrl = identity.getProfileUrl();
this.profilePicture = identity.getProfilePicture();
this.projectId = null;
}
public Member(Identity identity, String role, String projectId) {
this.externalId = identity.getExternalId();
this.externalIdType = identity.getExternalIdType();
this.role = role;
this.name = identity.getName();
this.login = identity.getLogin();
this.profileUrl = identity.getProfileUrl();
this.profilePicture = identity.getProfilePicture();
this.projectId = projectId;
}
public String getExternalId() {
return externalId;
}
public String getExternalIdType() {
return externalIdType;
}
public String getRole() {
return role;
}
public String getName() {
return name;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
Member member = (Member) o;
return new EqualsBuilder()
.append(externalId, member.externalId)
.append(externalIdType, member.externalIdType)
.append(role, member.role)
.isEquals();
}
@Override
public int hashCode() {
return new HashCodeBuilder(15, 39)
.append(externalId)
.append(externalIdType)
.append(role)
.toHashCode();
}
@Override
public String toString() {
return new ToStringBuilder(this)
.append("identity", externalId)
.append("externalIdType", externalIdType)
.append("role", role)
.append("name", name)
.toString();
}
public String getProfilePicture() {
return profilePicture;
}
public String getProfileUrl() {
return profileUrl;
}
public String getLogin() {
return login;
}
public String getProjectId() {
return projectId;
}
}