package org.gbif.ipt.struts2;
import org.gbif.ipt.action.BaseAction;
import org.gbif.ipt.config.Constants;
import org.gbif.ipt.model.User;
import java.util.Map;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
/**
* An Interceptor that makes sure an admin user is currently logged in and returns a notAllowed otherwise.
*/
public class RequireAdminInterceptor extends AbstractInterceptor {
@Override
public String intercept(ActionInvocation invocation) throws Exception {
Map<String, Object> session = invocation.getInvocationContext().getSession();
User user = (User) session.get(Constants.SESSION_USER);
if (user != null && user.hasAdminRights()) {
return invocation.invoke();
}
return BaseAction.NOT_ALLOWED;
}
}