package org.cagrid.gaards.dorian.federation;
import gov.nih.nci.cagrid.common.FaultHelper;
import org.cagrid.gaards.dorian.stubs.types.DorianInternalFault;
import org.cagrid.gaards.dorian.stubs.types.UserPolicyFault;
/**
* @author <A href="mailto:langella@bmi.osu.edu">Stephen Langella </A>
* @author <A href="mailto:oster@bmi.osu.edu">Scott Oster </A>
* @author <A href="mailto:hastings@bmi.osu.edu">Shannon Hastings </A>
* @version $Id: ArgumentManagerTable.java,v 1.2 2004/10/15 16:35:16 langella
* Exp $
*/
public class AutoApprovalPolicy extends AccountPolicy {
public void applyPolicy(TrustedIdP idp, GridUser user) throws DorianInternalFault, UserPolicyFault {
UserManager um = getUserManager();
// First we approve if the user has not been approved.
if (user.getUserStatus().equals(GridUserStatus.Pending)) {
user.setUserStatus(GridUserStatus.Active);
try {
um.updateUser(user);
} catch (Exception e) {
DorianInternalFault fault = new DorianInternalFault();
fault.setFaultString("Error updating the status of the user " + user.getGridId());
FaultHelper helper = new FaultHelper(fault);
helper.addFaultCause(e);
fault = (DorianInternalFault) helper.getFault();
throw fault;
}
}
}
public String getDisplayName() {
return "Auto Approval";
}
}