package edu.ualberta.med.biobank.common.wrappers.actions;
import org.hibernate.Session;
import edu.ualberta.med.biobank.common.wrappers.ModelWrapper;
import edu.ualberta.med.biobank.model.User;
import edu.ualberta.med.biobank.server.applicationservice.BiobankCSMSecurityUtil;
import edu.ualberta.med.biobank.server.applicationservice.exceptions.BiobankSessionException;
import gov.nih.nci.system.applicationservice.ApplicationException;
public class PersistCsmUserAction extends WrapperAction<User> {
private static final long serialVersionUID = 1L;
private String password;
public PersistCsmUserAction(ModelWrapper<User> wrapper, String password) {
super(wrapper);
this.password = password;
}
@Override
public Object doAction(Session session) throws BiobankSessionException {
try {
Long csmUserId = BiobankCSMSecurityUtil.persistUser(getModel(),
password);
getModel().setCsmUserId(csmUserId);
} catch (ApplicationException e) {
throw new BiobankSessionException("Error persisting csm user", e); //$NON-NLS-1$
}
return null;
}
}