package org.molgenis.ui.admin.usermanager; import org.molgenis.auth.Group; import org.molgenis.auth.User; import java.util.ArrayList; import java.util.List; public class UserViewData { private final String id; private final String username; private String firstName; private String middleName; private String lastName; private String fullName; // first, middle, last name private Boolean active; private Boolean superuser; private final List<String> groupList = new ArrayList<>(); UserViewData(User mu, List<Group> groups) { this(mu.getId(), mu.getUsername()); firstName = (null == mu.getFirstName() ? "" : mu.getFirstName()); middleName = (null == mu.getMiddleNames() ? "" : mu.getMiddleNames()); lastName = (null == mu.getLastName() ? "" : mu.getLastName()); fullName = firstName + ' ' + middleName + ' ' + lastName; this.active = mu.isActive(); this.superuser = mu.isSuperuser(); for (Group mg : groups) { this.groupList.add(mg.getId()); } } UserViewData(String id, final String username) { if (null == id) { throw new IllegalArgumentException("id is null"); } if (null == username) { throw new IllegalArgumentException("username is null"); } this.id = id; this.username = username; } public String getId() { return id; } public String getUsername() { return username; } public String getFullName() { return fullName; } public Boolean isActive() { return this.active; } public Boolean isSuperuser() { return this.superuser; } public Boolean isGroupMember(String id) { return groupList.contains(id); } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((active == null) ? 0 : active.hashCode()); result = prime * result + ((firstName == null) ? 0 : firstName.hashCode()); result = prime * result + ((fullName == null) ? 0 : fullName.hashCode()); result = prime * result + ((groupList == null) ? 0 : groupList.hashCode()); result = prime * result + ((id == null) ? 0 : id.hashCode()); result = prime * result + ((lastName == null) ? 0 : lastName.hashCode()); result = prime * result + ((middleName == null) ? 0 : middleName.hashCode()); result = prime * result + ((superuser == null) ? 0 : superuser.hashCode()); result = prime * result + ((username == null) ? 0 : username.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; UserViewData other = (UserViewData) obj; if (active == null) { if (other.active != null) return false; } else if (!active.equals(other.active)) return false; if (firstName == null) { if (other.firstName != null) return false; } else if (!firstName.equals(other.firstName)) return false; if (fullName == null) { if (other.fullName != null) return false; } else if (!fullName.equals(other.fullName)) return false; if (groupList == null) { if (other.groupList != null) return false; } else if (!groupList.equals(other.groupList)) return false; if (id == null) { if (other.id != null) return false; } else if (!id.equals(other.id)) return false; if (lastName == null) { if (other.lastName != null) return false; } else if (!lastName.equals(other.lastName)) return false; if (middleName == null) { if (other.middleName != null) return false; } else if (!middleName.equals(other.middleName)) return false; if (superuser == null) { if (other.superuser != null) return false; } else if (!superuser.equals(other.superuser)) return false; if (username == null) { if (other.username != null) return false; } else if (!username.equals(other.username)) return false; return true; } }