NIHVIVO-3706 Create a separate permission "UseSparqlQueryPage" to control the SPARQL query page. Installers may modify permission_config.n3 to make the SPARQL query page publicly accessible.

This commit is contained in:
j2blake 2012-03-22 17:40:21 +00:00
parent 84a9b22d99
commit 3a6a3b985a
6 changed files with 23 additions and 8 deletions

View file

@ -84,6 +84,8 @@ public class SimplePermission extends Permission {
"UseMiscellaneousEditorPages"); "UseMiscellaneousEditorPages");
public static final SimplePermission USE_MISCELLANEOUS_PAGES = new SimplePermission( public static final SimplePermission USE_MISCELLANEOUS_PAGES = new SimplePermission(
"UseMiscellaneousPages"); "UseMiscellaneousPages");
public static final SimplePermission USE_SPARQL_QUERY_PAGE = new SimplePermission(
"UseSparqlQueryPage");
public static List<SimplePermission> getAllInstances() { public static List<SimplePermission> getAllInstances() {
return new ArrayList<SimplePermission>(allInstances.values()); return new ArrayList<SimplePermission>(allInstances.values());

View file

@ -101,7 +101,7 @@ public class SparqlQueryServlet extends BaseEditController {
throws ServletException, IOException throws ServletException, IOException
{ {
if (!isAuthorizedToDisplayPage(request, response, if (!isAuthorizedToDisplayPage(request, response,
SimplePermission.USE_ADVANCED_DATA_TOOLS_PAGES.ACTIONS)) { SimplePermission.USE_SPARQL_QUERY_PAGE.ACTIONS)) {
return; return;
} }

View file

@ -198,9 +198,11 @@ public class BaseSiteAdminController extends FreemarkerHttpServlet {
urls.put("ingest", UrlBuilder.getUrl("/ingest")); urls.put("ingest", UrlBuilder.getUrl("/ingest"));
urls.put("rdfData", UrlBuilder.getUrl("/uploadRDFForm")); urls.put("rdfData", UrlBuilder.getUrl("/uploadRDFForm"));
urls.put("rdfExport", UrlBuilder.getUrl("/export")); urls.put("rdfExport", UrlBuilder.getUrl("/export"));
urls.put("sparqlQuery", UrlBuilder.getUrl("/admin/sparqlquery"));
urls.put("sparqlQueryBuilder", UrlBuilder.getUrl("/admin/sparqlquerybuilder")); urls.put("sparqlQueryBuilder", UrlBuilder.getUrl("/admin/sparqlquerybuilder"));
} }
if (PolicyHelper.isAuthorizedForActions(vreq, SimplePermission.USE_SPARQL_QUERY_PAGE.ACTIONS)) {
urls.put("sparqlQuery", UrlBuilder.getUrl("/admin/sparqlquery"));
}
return urls; return urls;
} }

View file

@ -22,6 +22,7 @@ auth:ADMIN
auth:hasPermission simplePermission:SeeStartupStatus ; auth:hasPermission simplePermission:SeeStartupStatus ;
auth:hasPermission simplePermission:UseAdvancedDataToolsPages ; auth:hasPermission simplePermission:UseAdvancedDataToolsPages ;
auth:hasPermission simplePermission:UseMiscellaneousAdminPages ; auth:hasPermission simplePermission:UseMiscellaneousAdminPages ;
auth:hasPermission simplePermission:UseSparqlQueryPage ;
# permissions for CURATOR and above. # permissions for CURATOR and above.
auth:hasPermission simplePermission:EditOntology ; auth:hasPermission simplePermission:EditOntology ;

View file

@ -7,7 +7,7 @@
<%@taglib prefix="vitro" uri="/WEB-INF/tlds/VitroUtils.tld" %> <%@taglib prefix="vitro" uri="/WEB-INF/tlds/VitroUtils.tld" %>
<%@page import="edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission" %> <%@page import="edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission" %>
<% request.setAttribute("requestedActions", SimplePermission.MANAGE_PORTALS.ACTION); %> <% request.setAttribute("requestedActions", SimplePermission.USE_SPARQL_QUERY_PAGE.ACTION); %>
<vitro:confirmAuthorization /> <vitro:confirmAuthorization />
<body> <body>

View file

@ -7,11 +7,21 @@
<h3>Advanced Data Tools</h3> <h3>Advanced Data Tools</h3>
<ul role="navigation"> <ul role="navigation">
<li role="listitem"><a href="${dataTools.rdfData}" title="Add/Remove RDF data">Add/Remove RDF data</a></li> <#if dataTools.rdfData?has_content>
<li role="listitem"><a href="${dataTools.ingest}" title="Ingest tools">Ingest tools</a></li> <li role="listitem"><a href="${dataTools.rdfData}" title="Add/Remove RDF data">Add/Remove RDF data</a></li>
<li role="listitem"><a href="${dataTools.rdfExport}" title="RDF export">RDF export</a></li> </#if>
<li role="listitem"><a href="${dataTools.sparqlQuery}" title="SPARQL query">SPARQL query</a></li> <#if dataTools.ingest?has_content>
<li role="listitem"><a href="${dataTools.sparqlQueryBuilder}" title="SPARQL query builder">SPARQL query builder</a></li> <li role="listitem"><a href="${dataTools.ingest}" title="Ingest tools">Ingest tools</a></li>
</#if>
<#if dataTools.rdfExport?has_content>
<li role="listitem"><a href="${dataTools.rdfExport}" title="RDF export">RDF export</a></li>
</#if>
<#if dataTools.sparqlQuery?has_content>
<li role="listitem"><a href="${dataTools.sparqlQuery}" title="SPARQL query">SPARQL query</a></li>
</#if>
<#if dataTools.sparqlQueryBuilder?has_content>
<li role="listitem"><a href="${dataTools.sparqlQueryBuilder}" title="SPARQL query builder">SPARQL query builder</a></li>
</#if>
</ul> </ul>
</section> </section>
</#if> </#if>