package edu.ualberta.med.biobank.common.action.security;
import java.util.HashSet;
import java.util.Set;
import edu.ualberta.med.biobank.common.action.security.Action2p0.ActionInput;
import edu.ualberta.med.biobank.model.Membership;
import edu.ualberta.med.biobank.model.User;
import edu.ualberta.med.biobank.model.util.IdUtil;
public class UserSaveInput implements ActionInput {
private static final long serialVersionUID = 1L;
private final Integer userId;
private final String login;
private final String password; // TODO: get this, use hash?
private final boolean recvBulkEmails;
private final String fullName;
private final String email;
private final boolean needPwdChange;
private final Set<Membership> memberships;
private final Set<Integer> groupIds;
private final MembershipContext context;
public UserSaveInput(User user, MembershipContext context, String password) {
if (user == null)
throw new IllegalArgumentException("null user");
if (context == null)
throw new IllegalArgumentException("null context");
this.userId = user.getId();
this.login = user.getLogin();
this.recvBulkEmails = user.getRecvBulkEmails();
this.fullName = user.getFullName();
this.email = user.getEmail();
this.needPwdChange = user.getNeedPwdChange();
this.memberships = new HashSet<Membership>(user.getMemberships());
this.groupIds = new HashSet<Integer>(IdUtil.getIds(user.getGroups()));
this.context = context;
this.password = password;
}
public UserSaveInput(User user, MembershipContext context) {
this(user, context, null);
}
public Integer getUserId() {
return userId;
}
public String getLogin() {
return login;
}
public String getPassword() {
return password;
}
public boolean isRecvBulkEmails() {
return recvBulkEmails;
}
public String getFullName() {
return fullName;
}
public String getEmail() {
return email;
}
public boolean isNeedPwdChange() {
return needPwdChange;
}
public Set<Membership> getMemberships() {
return memberships;
}
public Set<Integer> getGroupIds() {
return groupIds;
}
public MembershipContext getContext() {
return context;
}
}