diff --git a/webapp/src/edu/cornell/mannlib/vedit/controller/BaseEditController.java b/webapp/src/edu/cornell/mannlib/vedit/controller/BaseEditController.java index f63faf810..472e98999 100644 --- a/webapp/src/edu/cornell/mannlib/vedit/controller/BaseEditController.java +++ b/webapp/src/edu/cornell/mannlib/vedit/controller/BaseEditController.java @@ -24,6 +24,7 @@ import com.hp.hpl.jena.ontology.OntModel; import edu.cornell.mannlib.vedit.beans.EditProcessObject; import edu.cornell.mannlib.vedit.beans.LoginFormBean; +import edu.cornell.mannlib.vedit.beans.LoginStatusBean; import edu.cornell.mannlib.vedit.util.FormUtils; import edu.cornell.mannlib.vitro.webapp.beans.Portal; import edu.cornell.mannlib.vitro.webapp.controller.VitroHttpServlet; @@ -110,40 +111,35 @@ public class BaseEditController extends VitroHttpServlet { private String createEpoKey(){ return Long.toHexString(cal.getTimeInMillis()); } + + /** + * If not logged in, send them to the login page. + */ + protected boolean checkLoginStatus(HttpServletRequest request, + HttpServletResponse response) { + return checkLoginStatus(request, response, LoginStatusBean.ANYBODY); + } - protected boolean checkLoginStatus(HttpServletRequest request, HttpServletResponse response){ - return checkLoginStatus(request, response, null); - } - - protected boolean checkLoginStatus(HttpServletRequest request, HttpServletResponse response, String postLoginRedirectURI){ - LoginFormBean loginBean = (LoginFormBean) request.getSession().getAttribute("loginHandler"); - String loginPage = request.getContextPath() + Controllers.LOGIN; - if (loginBean == null){ - try{ - if (postLoginRedirectURI == null) - request.getSession().setAttribute("postLoginRequest",request.getRequestURI()+"?"+request.getQueryString()); - else - request.getSession().setAttribute("postLoginRequest",postLoginRedirectURI+"?"+request.getQueryString()); - response.sendRedirect(loginPage); - return false; - } catch (IOException ioe) { - log.error("checkLoginStatus() could not redirect to login page"); - return false; - } - } else { - if (!loginBean.getLoginStatus().equals("authenticated")) { - try{ - response.sendRedirect(loginPage); - return false; - } catch (IOException ioe) { - log.error("checkLoginStatus() could not redirect to login page"); - return false; - } - } - } - return true; - } - + /** + * If not logged in at the minimum level or higher, send them to the login page. + */ + protected boolean checkLoginStatus(HttpServletRequest request, + HttpServletResponse response, int minimumLevel) { + if (LoginStatusBean.getBean(request).isLoggedInAtLeast(minimumLevel)) { + return true; + } + + request.getSession().setAttribute("postLoginRequest", + request.getRequestURI() + "?" + request.getQueryString()); + try { + String loginPage = request.getContextPath() + Controllers.LOGIN; + response.sendRedirect(loginPage); + } catch (IOException ioe) { + log.error("checkLoginStatus() could not redirect to login page"); + } + return false; + } + protected void setRequestAttributes(HttpServletRequest request, EditProcessObject epo){ Portal portal = (Portal)request.getAttribute("portalBean"); request.setAttribute("epoKey",epo.getKey()); diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/DatapropEditController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/DatapropEditController.java index defe35105..e3c4ab8f4 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/DatapropEditController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/DatapropEditController.java @@ -40,7 +40,7 @@ public class DatapropEditController extends BaseEditController { final int NUM_COLS=15; - if (!checkLoginStatus(request,response,(String)request.getAttribute("fetchURI"))) + if (!checkLoginStatus(request,response)) return; try { diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/EntityEditController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/EntityEditController.java index b2819bf7f..564d0f0e1 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/EntityEditController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/EntityEditController.java @@ -56,7 +56,7 @@ public class EntityEditController extends BaseEditController { public void doGet (HttpServletRequest request, HttpServletResponse response) { - if (!checkLoginStatus(request,response,(String)request.getAttribute("fetchURI"))) + if (!checkLoginStatus(request,response)) return; try { diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/KeywordEditController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/KeywordEditController.java index f80df5170..642e4d782 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/KeywordEditController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/KeywordEditController.java @@ -26,7 +26,7 @@ public class KeywordEditController extends BaseEditController { public void doPost (HttpServletRequest request, HttpServletResponse response) { - if (!checkLoginStatus(request,response,(String)request.getAttribute("fetchURI"))) + if (!checkLoginStatus(request,response)) return; try { diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/OntologyEditController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/OntologyEditController.java index a033d481b..c8ce104a0 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/OntologyEditController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/OntologyEditController.java @@ -30,7 +30,7 @@ public class OntologyEditController extends BaseEditController { public void doPost (HttpServletRequest req, HttpServletResponse response) { VitroRequest request = new VitroRequest(req); - if (!checkLoginStatus(request,response,(String)request.getAttribute("fetchURI"))) + if (!checkLoginStatus(request,response)) return; try { diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/PortalEditController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/PortalEditController.java index 56f6533de..0abb6e781 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/PortalEditController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/PortalEditController.java @@ -26,7 +26,7 @@ public class PortalEditController extends BaseEditController { public void doPost (HttpServletRequest request, HttpServletResponse response) { - if (!checkLoginStatus(request,response,(String)request.getAttribute("fetchURI"))) + if (!checkLoginStatus(request,response)) return; try { diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/PropertyEditController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/PropertyEditController.java index 1839d9bfc..1632661b5 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/PropertyEditController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/PropertyEditController.java @@ -38,7 +38,7 @@ public class PropertyEditController extends BaseEditController { public void doPost (HttpServletRequest request, HttpServletResponse response) { final int NUM_COLS=17; - if (!checkLoginStatus(request,response,(String)request.getAttribute("fetchURI"))) + if (!checkLoginStatus(request,response)) return; try { diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/TabEditController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/TabEditController.java index fefa2e89a..da92ace02 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/TabEditController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/TabEditController.java @@ -30,7 +30,7 @@ public class TabEditController extends BaseEditController { public void doPost (HttpServletRequest request, HttpServletResponse response) { - if (!checkLoginStatus(request,response,(String)request.getAttribute("fetchURI"))) + if (!checkLoginStatus(request,response)) return; try { diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/UserEditController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/UserEditController.java index 827a24d0d..907dfe9b8 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/UserEditController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/UserEditController.java @@ -40,7 +40,7 @@ public class UserEditController extends BaseEditController { public void doPost (HttpServletRequest request, HttpServletResponse response) throws ServletException { - if (!checkLoginStatus(request,response,(String)request.getAttribute("fetchURI"))) + if (!checkLoginStatus(request,response)) return; try { diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/VclassEditController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/VclassEditController.java index b26f94462..d5161c958 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/VclassEditController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/VclassEditController.java @@ -41,7 +41,7 @@ public class VclassEditController extends BaseEditController { VitroRequest request = new VitroRequest(req); - if (!checkLoginStatus(request,response,(String)request.getAttribute("fetchURI"))) + if (!checkLoginStatus(request,response)) return; try {