package com.openedit.webui.tree;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.openedit.OpenEditException;
import com.openedit.WebPageRequest;
import com.openedit.page.Page;
import com.openedit.page.Permission;
import com.openedit.page.manage.PageManager;
import com.openedit.util.strainer.BaseFilter;
import com.openedit.util.strainer.FilterException;
public class PagePathViewFilter extends BaseFilter
{
private static final Log log = LogFactory.getLog(PagePathViewFilter.class);
PageManager fieldPageManager;
WebPageRequest fieldLoadingWebPageRequest;
public boolean passes(Object inObj) throws FilterException
{
String path = (String)inObj;
try
{
Page page = getPageManager().getPage(path);
Permission view = page.getPermission("view");
if( view != null)
{
WebPageRequest copy = getLoadingWebPageRequest().copy(page);
boolean ok = view.passes(copy);
return ok;
}
return true;
} catch ( OpenEditException ex)
{
throw new FilterException(ex);
}
finally
{
getPageManager().clearCache(path);
}
}
public PageManager getPageManager()
{
return fieldPageManager;
}
public void setPageManager(PageManager inPageManager)
{
fieldPageManager = inPageManager;
}
public WebPageRequest getLoadingWebPageRequest()
{
return fieldLoadingWebPageRequest;
}
public void setLoadingWebPageRequest(WebPageRequest inLoadingWebPageRequest)
{
fieldLoadingWebPageRequest = inLoadingWebPageRequest;
}
public String toString()
{
return "Path=" + getValue();
}
}