Revision: 2223 http://archive-access.svn.sourceforge.net/archive-access/?rev=2223&view=rev Author: alexoz Date: 2008-03-20 17:58:37 -0700 (Thu, 20 Mar 2008) Log Message: ----------- AdminController.java * Added a few cleanups to SURTs and allow URLs to be entered as an alternative. Modified Paths: -------------- trunk/archive-access/projects/access-control/oracle/src/main/java/org/archive/accesscontrol/webui/AdminController.java Modified: trunk/archive-access/projects/access-control/oracle/src/main/java/org/archive/accesscontrol/webui/AdminController.java =================================================================== --- trunk/archive-access/projects/access-control/oracle/src/main/java/org/archive/accesscontrol/webui/AdminController.java 2008-03-14 03:23:05 UTC (rev 2222) +++ trunk/archive-access/projects/access-control/oracle/src/main/java/org/archive/accesscontrol/webui/AdminController.java 2008-03-21 00:58:37 UTC (rev 2223) @@ -19,6 +19,8 @@ import org.archive.accesscontrol.model.Rule; import org.archive.accesscontrol.model.RuleSet; import org.archive.surt.NewSurtTokenizer; +import org.archive.util.ArchiveUtils; +import org.archive.util.SURT; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.AbstractController; @@ -52,9 +54,40 @@ } return ruleList(surt, editingRuleId, request, response); } + + /** + * Return true if the given string appears to be a SURT. + * @param s + * @return + */ + protected boolean isSurt(String s) { + return s.charAt(0) == '(' || s.indexOf("://") == s.indexOf("://("); + } + /** + * Perform a several cleanups on the given surt: + * * Convert a URL to a SURT + * * Add a trailing slash to SURTs of the form: http://(...) + * @param surt + * @return + */ + protected String cleanSurt(String surt) { + if (!isSurt(surt)) { + surt = ArchiveUtils.addImpliedHttpIfNecessary(surt); + surt = SURT.fromURI(surt); + } + + if (surt.endsWith(",)") && surt.indexOf(")") == surt.length()-1) { + surt = surt + "/"; + } + + return surt; + } + protected ModelAndView ruleList(String surt, Long editingRuleId, HttpServletRequest request, HttpServletResponse response) throws Exception { + + surt = cleanSurt(surt); int surtSegments = new NewSurtTokenizer(surt).toList().size(); Map<String, Object> model = new HashMap<String, Object>(); RuleSet rules = ruleDao.getRuleTree(surt); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |