Clean up the logic and reformat the FakeSelfEditing code. No functional change.

This commit is contained in:
jeb228 2010-08-31 21:23:15 +00:00
parent 2e609225de
commit 83c1043c9f
2 changed files with 85 additions and 118 deletions

View file

@ -9,7 +9,6 @@ import javax.servlet.http.HttpSession;
import edu.cornell.mannlib.vitro.webapp.auth.identifier.SelfEditingIdentifierFactory.NetId; import edu.cornell.mannlib.vitro.webapp.auth.identifier.SelfEditingIdentifierFactory.NetId;
import edu.cornell.mannlib.vitro.webapp.auth.policy.RoleBasedPolicy; import edu.cornell.mannlib.vitro.webapp.auth.policy.RoleBasedPolicy;
import edu.cornell.mannlib.vitro.webapp.beans.Individual; import edu.cornell.mannlib.vitro.webapp.beans.Individual;
import edu.cornell.mannlib.vitro.webapp.dao.IndividualDao;
import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory; import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory;
/** /**
@ -57,4 +56,13 @@ public class FakeSelfEditingIdentifierFactory implements IdentifierBundleFactory
public static void clearFakeIdInSession( HttpSession session){ public static void clearFakeIdInSession( HttpSession session){
session.removeAttribute(FAKE_SELF_EDIT_NETID); session.removeAttribute(FAKE_SELF_EDIT_NETID);
} }
public static String getFakeIdFromSession(HttpSession session) {
Object netid = session.getAttribute(FAKE_SELF_EDIT_NETID);
if (netid instanceof String) {
return (String) netid;
} else {
return null;
}
}
} }

View file

@ -1,123 +1,82 @@
/* $This file is distributed under the terms of the license in /doc/license.txt$ */ /* $This file is distributed under the terms of the license in /doc/license.txt$ */
package edu.cornell.mannlib.vitro.webapp.controller; package edu.cornell.mannlib.vitro.webapp.controller;
import java.util.Enumeration; import java.io.IOException;
import java.io.IOException; import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.RequestDispatcher; import javax.servlet.http.HttpServletRequest;
import javax.servlet.ServletException; import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSession;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import edu.cornell.mannlib.vitro.webapp.controller.Controllers; import org.apache.commons.logging.Log;
import edu.cornell.mannlib.vedit.beans.LoginFormBean; import org.apache.commons.logging.LogFactory;
//import edu.cornell.mannlib.vedit.controller.BaseEditController;
import edu.cornell.mannlib.vitro.webapp.beans.Portal; import edu.cornell.mannlib.vedit.beans.LoginFormBean;
import edu.cornell.mannlib.vitro.webapp.filters.VitroRequestPrep;
import edu.cornell.mannlib.vitro.webapp.auth.identifier.FakeSelfEditingIdentifierFactory; import edu.cornell.mannlib.vitro.webapp.auth.identifier.FakeSelfEditingIdentifierFactory;
import edu.cornell.mannlib.vitro.webapp.filters.VitroRequestPrep;
public class FakeSelfEditController extends VitroHttpServlet {
public class FakeSelfEditController extends VitroHttpServlet {
private static final Log log = LogFactory.getLog(FakeSelfEditController.class.getName());
private static final Log log = LogFactory
public void doGet( HttpServletRequest request, HttpServletResponse response ) .getLog(FakeSelfEditController.class.getName());
throws IOException, ServletException {
public void doGet(HttpServletRequest request, HttpServletResponse response)
// if (!checkLoginStatus(request, response)) { throws IOException, ServletException {
// return;
// } try {
super.doGet(request, response);
String redirectUrl = null; VitroRequest vreq = new VitroRequest(request);
String netid = null; HttpSession session = request.getSession();
String msg = null;
if (!LoginFormBean.loggedIn(request, LoginFormBean.CURATOR)) {
try { // Not logged in as site admin
super.doGet(request,response); session.setAttribute("postLoginRequest", vreq.getRequestURI());
VitroRequest vreq = new VitroRequest(request); response.sendRedirect(request.getContextPath()
HttpSession session = request.getSession(true); + Controllers.LOGIN + "?login=block");
} else if (vreq.getParameter("force") != null) {
Object obj = vreq.getSession().getAttribute("loginHandler"); // Logged in as site admin: Form to use netid
LoginFormBean loginHandler = null; VitroRequestPrep.forceToSelfEditing(request);
if( obj != null && obj instanceof LoginFormBean ) String id = request.getParameter("netid");
loginHandler = ((LoginFormBean)obj); FakeSelfEditingIdentifierFactory.clearFakeIdInSession(session);
FakeSelfEditingIdentifierFactory.putFakeIdInSession(id, session);
// Not logged in to site admin response.sendRedirect(request.getContextPath()
if ( loginHandler == null || + Controllers.ENTITY + "?netid=" + id);
! "authenticated".equalsIgnoreCase(loginHandler.getLoginStatus()) || } else if (request.getParameter("stopfaking") != null) {
Integer.parseInt(loginHandler.getLoginRole()) <= LoginFormBean.CURATOR ) { // Logged in as site admin: Form to stop using netid
VitroRequestPrep.forceOutOfSelfEditing(request);
session.setAttribute("postLoginRequest", FakeSelfEditingIdentifierFactory.clearFakeIdInSession(session);
vreq.getRequestURI()); //+( vreq.getQueryString()!=null?('?' + vreq.getQueryString()):"" )); response.sendRedirect(request.getContextPath() + "/");
// Redirect to site admin login page } else {
redirectUrl=request.getContextPath() + Controllers.LOGIN + "?login=block"; // Logged in as site admin: Form not yet submitted
} request.setAttribute("msg", figureMessage(session));
request.setAttribute("title", "Self-Edit Test");
// Logged in to site admin request.setAttribute("bodyJsp", "/admin/fakeselfedit.jsp");
else { RequestDispatcher rd = request.getRequestDispatcher(Controllers.BASIC_JSP);
// Handle form submission rd.forward(request, response);
// Form to use netid submitted }
if( vreq.getParameter("force") != null ){ } catch (Exception e) {
VitroRequestPrep.forceToSelfEditing(request); log.error("FakeSelfEditController could not forward to view.");
netid = request.getParameter("netid"); log.error(e, e);
FakeSelfEditingIdentifierFactory.clearFakeIdInSession( session ); }
FakeSelfEditingIdentifierFactory.putFakeIdInSession( netid , session ); }
// Redirect to user's entity page
redirectUrl = request.getContextPath() + Controllers.ENTITY + "?netid=" + netid; /**
} * Check if already logged in from previous form submission
*/
// Form to stop using netid submitted private String figureMessage(HttpSession session) {
else if ( request.getParameter("stopfaking") != null) { String netid = FakeSelfEditingIdentifierFactory.getFakeIdFromSession(session);
VitroRequestPrep.forceOutOfSelfEditing(request); if (netid != null) {
FakeSelfEditingIdentifierFactory.clearFakeIdInSession( session ); return "You are testing self-editing as '" + netid + "'.";
// Redirect to home page } else {
redirectUrl = request.getContextPath() + "/"; return "You have not configured a netid to test self-editing.";
} }
} }
if (redirectUrl != null) { public void doPost(HttpServletRequest request, HttpServletResponse response)
response.sendRedirect(redirectUrl); throws ServletException, IOException {
return; doGet(request, response);
} }
// On page, form not yet submitted }
// Check if already logged in from previous form submission
netid = (String)session.getAttribute(FakeSelfEditingIdentifierFactory.FAKE_SELF_EDIT_NETID);
// Already logged in from a previous request
if ( netid != null ) {
msg = "You are testing self-editing as '" + netid + "'.";
}
// Not logged in
else {
msg = "You have not configured a netid to test self-editing.";
}
request.setAttribute("msg", msg);
request.setAttribute("title", "Self-Edit Test");
request.setAttribute("bodyJsp", "/admin/fakeselfedit.jsp");
RequestDispatcher rd =
request.getRequestDispatcher(Controllers.BASIC_JSP);
rd.forward(request, response);
} catch (Throwable e) {
log.error("FakeSelfEditController could not forward to view.");
log.error(e.getMessage());
log.error(e.getStackTrace());
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}