package edu.ualberta.med.biobank.common.permission.request;
import java.util.List;
import edu.ualberta.med.biobank.common.action.ActionContext;
import edu.ualberta.med.biobank.common.permission.Permission;
import edu.ualberta.med.biobank.model.Center;
import edu.ualberta.med.biobank.model.PermissionEnum;
import edu.ualberta.med.biobank.model.RequestSpecimen;
public class UpdateRequestPermission implements Permission {
/**
*
*/
private static final long serialVersionUID = 5212290952626711959L;
private List<Integer> specs;
public UpdateRequestPermission(List<Integer> specs) {
this.specs = specs;
}
@Override
public boolean isAllowed(ActionContext context) {
if (specs.size() == 0) return true;
Integer id =
context.load(RequestSpecimen.class, specs.get(0)).getSpecimen()
.getCurrentCenter()
.getId();
for (Integer spec : specs)
if (!context.load(RequestSpecimen.class, spec)
.getSpecimen().getCurrentCenter().getId()
.equals(id))
return false;
return PermissionEnum.REQUEST_UPDATE.isAllowed(context.getUser(),
context.get(Center.class, id));
}
}