%-- $This file is distributed under the terms of the license in /doc/license.txt$ --%>
<%@ page import="edu.cornell.mannlib.vitro.webapp.edit.n3editing.EditSubmission" %>
<%@ page import="edu.cornell.mannlib.vitro.webapp.edit.n3editing.Field" %>
<%@ page import="edu.cornell.mannlib.vitro.webapp.filters.VitroRequestPrep" %>
<%@ page import="org.apache.commons.logging.Log" %>
<%@ page import="org.apache.commons.logging.LogFactory" %>
<%@ page import="java.io.StringReader" %>
<%@ page import="java.util.*" %>
<%@page import="edu.cornell.mannlib.vitro.webapp.auth.identifier.SelfEditingIdentifierFactory.NetId"%>
<%@page import="edu.cornell.mannlib.vitro.webapp.auth.identifier.SelfEditingIdentifierFactory"%>
<%@page import="edu.cornell.mannlib.vitro.webapp.auth.identifier.SelfEditingIdentifierFactory.SelfEditing"%>
<%@page import="edu.cornell.mannlib.vitro.webapp.auth.identifier.ServletIdentifierBundleFactory"%>
<%@page import="edu.cornell.mannlib.vitro.webapp.auth.identifier.ArrayIdentifierBundle"%>
<%@page import="edu.cornell.mannlib.vitro.webapp.auth.identifier.IdentifierBundle"%>
<%@page import="java.io.IOException"%>
<%@page import="edu.cornell.mannlib.vitro.webapp.auth.identifier.IdentifierBundleFactory"%>
<%@page import="edu.cornell.mannlib.vitro.webapp.auth.policy.ServletPolicyList"%>
<%@page import="edu.cornell.mannlib.vitro.webapp.auth.policy.ifaces.PolicyIface"%>
<%@page import="edu.cornell.mannlib.vitro.webapp.auth.policy.SelfEditingPolicy"%>
<%@page import="edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory"%>
<%@page import="edu.cornell.mannlib.vitro.webapp.auth.requestedAction.AddObjectPropStmt"%>
<%@page import="edu.cornell.mannlib.vitro.webapp.auth.policy.ifaces.PolicyDecision"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
SelfEditing Sanity Check
Is there a Factory that will create self editing identifiers?
<%
ServletIdentifierBundleFactory sibf = ServletIdentifierBundleFactory.getIdentifierBundleFactory(application);
String found = "Self editing identifier factory found.";
for( IdentifierBundleFactory ibf : sibf ){
if( ibf instanceof SelfEditingIdentifierFactory ){
found = "Found a self editing identifier factory.";
break;
}
}
%>
<%= found %>
Is there a self editing policy in the context?
<%
ServletPolicyList spl = ServletPolicyList.getPolicies(application);
SelfEditingPolicy sePolicy = null;
ListIterator it = spl.listIterator();
found = "Could not find a SelfEditingPolicy";
while(it.hasNext()){
PolicyIface p = (PolicyIface)it.next();
if( p instanceof SelfEditingPolicy ){
found = "Found a SelfEditingPolicy";
sePolicy = (SelfEditingPolicy)p;
}
}
%>
<%= found %>
Do you have a REMOTE_USER header from CUWebAuth?
<% String user = request.getHeader("REMOTE_USER");
if( user != null && user.length() > 0){
%> Found a remote user of <%= user %>. <%
}else{
%> Could not find a remote user. Maybe you are not logged into CUWebAutn? <%
}
%>
Check if we can get a SelfEditingIdentifer for <%= user %>
<%
SelfEditingIdentifierFactory.SelfEditing selfEditingId = null;
IdentifierBundle ib = null;
if( user != null && user.length() > 0){
ib = sibf.getIdentifierBundle(request,session,application);
if( ib != null ) {
for( Object obj : ib){
if( obj instanceof SelfEditingIdentifierFactory.SelfEditing )
selfEditingId = (SelfEditingIdentifierFactory.SelfEditing) obj;
}
if( selfEditingId != null )
found = "found a SelfEditingId " + selfEditingId.getValue();
else
found = "Cound not find a SelfEditingId";
}else{
found = "Could not get any identififers";
}
%>
<%= found %>
<%}else{%>
Cannot check becaue user is <%= user %>.
<%} %>
Is that SelfEditingIdentifer blacklisted?
<% if( user == null || user.length() == 0 ){ %>
No REMOTE_USER to check
<% }else if( selfEditingId == null ){ %>
no SelfEditingId to check
<% }else if( selfEditingId.getBlacklisted() != null){%>
SelfEditingId blacklisted because of <%= selfEditingId.getBlacklisted() %>
<% } else {%>
SelfEditingId is not blacklisted.
<% } %>
Can an object property be edited with this SelfEditingId and Policy?
<% if( user == null || selfEditingId == null ){ %>
No
<% }else{
AddObjectPropStmt whatToAuth = new AddObjectPropStmt(
selfEditingId.getValue(),"http://mannlib.cornell.edu/fine#prp999" ,"http://mannlib.cornell.edu/fine#prp999");
PolicyDecision pdecison = sePolicy.isAuthorized(ib, whatToAuth);
%> The policy decision was <%= pdecison %>
<% } %>