NIHVIVO-2886, NIHVIVO-2940 Fix display of links based on policy checks

This commit is contained in:
ryounes 2011-07-15 21:38:59 +00:00
parent e3e95fb11b
commit 64f930f053
6 changed files with 54 additions and 74 deletions

View file

@ -61,51 +61,41 @@ public class SiteAdminController extends FreemarkerHttpServlet {
body.put("dataInput", getDataInputData(vreq));
}
body.put("siteConfig", getSiteConfigurationData(vreq));
body.put("siteConfig", getSiteConfigUrls(vreq));
body.put("indexCacheRebuild", getIndexCacheRebuildData(vreq));
if (PolicyHelper.isAuthorizedForActions(vreq, new UseMiscellaneousAdminPages())) {
body.put("indexCacheRebuild", getIndexCacheRebuildUrls(vreq));
}
// rjy7 There is a risk that the login levels required to show the links will get out
// of step with the levels required by the pages themselves. We should implement a
// mechanism similar to what's used on the front end to display links to Site Admin
// and Revision Info iff the user has access to those pages.
if (PolicyHelper.isAuthorizedForActions(vreq, new EditOntology())) {
body.put("ontologyEditor", getOntologyEditorData(vreq));
}
if (PolicyHelper.isAuthorizedForActions(vreq, new UseAdvancedDataToolsPages())) {
body.put("dataTools", getDataToolsData(vreq));
// Only for DataStar. Should handle without needing a DataStar-specific version of this controller.
//body.put("customReports", getCustomReportsData(vreq));
body.put("dataTools", getDataToolsUrls(vreq));
}
return new TemplateResponseValues(TEMPLATE_DEFAULT, body);
}
private Object getIndexCacheRebuildData(VitroRequest vreq) {
Map<String, Object> map = new HashMap<String, Object>();
private Map<String, String> getIndexCacheRebuildUrls(VitroRequest vreq) {
Map<String, String> urls = new HashMap<String, String>();
urls.put("recomputeInferences", UrlBuilder.getUrl("/RecomputeInferences"));
urls.put("rebuildClassGroupCache", UrlBuilder.getUrl("/browse?clearcache=1"));
if (PolicyHelper.isAuthorizedForActions(vreq, IndexController.REQUIRED_ACTIONS)) {
urls.put("rebuildSearchIndex", UrlBuilder.getUrl("/SearchIndex"));
}
if (PolicyHelper.isAuthorizedForActions(vreq, new UseMiscellaneousAdminPages())) {
urls.put("recomputeInferences", UrlBuilder.getUrl("/RecomputeInferences"));
}
if (PolicyHelper.isAuthorizedForActions(vreq, new UseMiscellaneousAdminPages())) {
urls.put("rebuildClassGroupCache", UrlBuilder.getUrl("/browse?clearcache=1"));
}
if (PolicyHelper.isAuthorizedForActions(vreq, new RefreshVisualizationCacheAction())) {
urls.put("rebuildVisCache", UrlBuilder.getUrl("/vis/tools"));
}
map.put("urls", urls);
return map;
return urls;
}
private Map<String, Object> getDataInputData(VitroRequest vreq) {
@ -117,8 +107,7 @@ public class SiteAdminController extends FreemarkerHttpServlet {
// Create map for data input entry form options list
List classGroups = wadf.getVClassGroupDao().getPublicGroupsWithVClasses(true,true,false); // order by displayRank, include uninstantiated classes, don't get the counts of individuals
//boolean classGroupDisplayAssumptionsMet = checkClassGroupDisplayAssumptions(classGroups);
Set<String> seenGroupNames = new HashSet<String>();
@ -143,17 +132,16 @@ public class SiteAdminController extends FreemarkerHttpServlet {
return map;
}
private Map<String, Object> getSiteConfigurationData(VitroRequest vreq) {
private Map<String, String> getSiteConfigUrls(VitroRequest vreq) {
Map<String, Object> map = new HashMap<String, Object>();
Map<String, String> urls = new HashMap<String, String>();
if (PolicyHelper.isAuthorizedForActions(vreq, new ManageUserAccounts())) {
urls.put("userList", UrlBuilder.getUrl("/accountsAdmin"));
urls.put("userAccounts", UrlBuilder.getUrl("/accountsAdmin"));
}
if (PolicyHelper.isAuthorizedForActions(vreq, new EditSiteInformation())) {
urls.put("siteInfo", UrlBuilder.getUrl("/editForm", new ParamMap("controller", "ApplicationBean")));
urls.put("siteInfo", UrlBuilder.getUrl("/editForm", "controller", "ApplicationBean"));
}
if (PolicyHelper.isAuthorizedForActions(vreq, new ManageMenus())) {
@ -166,9 +154,7 @@ public class SiteAdminController extends FreemarkerHttpServlet {
urls.put("internalClass", UrlBuilder.getUrl("/processInstitutionalInternalClass"));
}
map.put("urls", urls);
return map;
return urls;
}
private Map<String, Object> getOntologyEditorData(VitroRequest vreq) {
@ -210,10 +196,8 @@ public class SiteAdminController extends FreemarkerHttpServlet {
return map;
}
private Map<String, Object> getDataToolsData(VitroRequest vreq) {
private Map<String, String> getDataToolsUrls(VitroRequest vreq) {
Map<String, Object> map = new HashMap<String, Object>();
Map<String, String> urls = new HashMap<String, String>();
urls.put("ingest", UrlBuilder.getUrl("/ingest"));
urls.put("rdfData", UrlBuilder.getUrl("/uploadRDFForm"));
@ -221,9 +205,7 @@ public class SiteAdminController extends FreemarkerHttpServlet {
urls.put("sparqlQuery", UrlBuilder.getUrl("/admin/sparqlquery"));
urls.put("sparqlQueryBuilder", UrlBuilder.getUrl("/admin/sparqlquerybuilder"));
map.put("urls", urls);
return map;
return urls;
}
}

View file

@ -2,17 +2,17 @@
<#-- Template for Site Administration advanced data tools panel -->
<#if dataTools??>
<#if dataTools?has_content>
<section class="pageBodyGroup">
<h3>Advanced Data Tools</h3>
<ul>
<li><a href="${dataTools.urls.ingest}">Ingest tools</a></li>
<li><a href="${dataTools.urls.rdfData}">Add/Remove RDF data</a></li>
<li><a href="${dataTools.urls.rdfExport}">RDF export</a></li>
<li><a href="${dataTools.urls.sparqlQuery}">SPARQL query</a></li>
<li><a href="${dataTools.urls.sparqlQueryBuilder}">SPARQL query builder</a></li>
<li><a href="${dataTools.ingest}">Ingest tools</a></li>
<li><a href="${dataTools.rdfData}">Add/Remove RDF data</a></li>
<li><a href="${dataTools.rdfExport}">RDF export</a></li>
<li><a href="${dataTools.sparqlQuery}">SPARQL query</a></li>
<li><a href="${dataTools.sparqlQueryBuilder}">SPARQL query builder</a></li>
</ul>
</section>
</#if>

View file

@ -2,28 +2,27 @@
<#-- Template for the main Site Administration page -->
<#-- <#if indexRebuildCache?has_content> -->
<#if indexCacheRebuild?has_content>
<section class="pageBodyGroup indexCacheRebuild">
<h3>Refresh Content</h3>
<ul>
<#if indexCacheRebuild.urls.rebuildSearchIndex??>
<li><a href="${indexCacheRebuild.urls.rebuildSearchIndex }">Rebuild search index</a></li>
<#if indexCacheRebuild.rebuildSearchIndex?has_content>
<li><a href="${indexCacheRebuild.rebuildSearchIndex }">Rebuild search index</a></li>
</#if>
<#if indexCacheRebuild.urls.rebuildClassGroupCache??>
<li><a href="${indexCacheRebuild.urls.rebuildClassGroupCache}">Rebuild class group cache</a></li>
<#if indexCacheRebuild.rebuildClassGroupCache?has_content>
<li><a href="${indexCacheRebuild.rebuildClassGroupCache}">Rebuild class group cache</a></li>
</#if>
<#if indexCacheRebuild.urls.rebuildVisCache??>
<li><a href="indexCacheRebuild.urls.rebuildVisCache">Rebuild visualization cache</a></li>
<#if indexCacheRebuild.rebuildVisCache?has_content>
<li><a href="${indexCacheRebuild.rebuildVisCache}">Rebuild visualization cache</a></li>
</#if>
<#if indexCacheRebuild.urls.recomputeInferences??>
<li><a href="${indexCacheRebuild.urls.recomputeInferences}">Recompute inferences</a></li>
<#if indexCacheRebuild.recomputeInferences?has_content>
<li><a href="${indexCacheRebuild.recomputeInferences}">Recompute inferences</a></li>
</#if>
</ul>
</section>
<#-- </#if> -->
</#if>

View file

@ -2,15 +2,15 @@
<#-- Template for Site Administration Ontology Editor -->
<#if ontologyEditor??>
<#if ontologyEditor?has_content>
<div class="pageBodyGroup">
<h3>Ontology Editor</h3>
<#if ontologyEditor.pellet??>
<#if ontologyEditor.pellet?has_content>
<div class="notice">
<p>${ontologyEditor.pellet.error}</p>
<#if ontologyEditor.pellet.explanation??>
<#if ontologyEditor.pellet.explanation?has_content>
<p>Cause: ${ontologyEditor.pellet.explanation}</p>
</#if>
</div>

View file

@ -8,23 +8,22 @@
<h3>Site Configuration</h3>
<ul>
<#if siteConfig.siteInfo?has_content>
<li><a href="${siteConfig.siteInfo}">Site information</a></li>
</#if>
<#if siteConfig.menuManagement?has_content>
<li><a href="${siteConfig.menuManagement}">Menu management</a></li>
</#if>
<#if siteConfig.internalClass?has_content>
<li><a href="${siteConfig.internalClass}">Institutional internal class</a></li>
<#if siteConfig.urls.siteInfo??>
<li><a href="${siteConfig.urls.siteInfo}">Site information</a></li>
</#if>
<#if siteConfig.urls.menuManagement??>
<li><a href="${siteConfig.urls.menuManagement}">Menu management</a></li>
</#if>
<#if siteConfig.urls.internalClass??>
<li><a href="${siteConfig.urls.internalClass}">Institutional internal class</a></li>
</#if>
<#if siteConfig.urls.userList??>
<li><a href="${siteConfig.urls.userList}">User accounts</a></li>
</#if>
<#if siteConfig.userAccounts?has_content>
<li><a href="${siteConfig.userAccounts}">User accounts</a></li>
</#if>
</ul>
</div>
</#if>

View file

@ -21,7 +21,7 @@ edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators.Institu
<#--If no local ontologies, display message for user to create a local ontology-->
<#if ontologiesExist = false>
<section id="noLocalOntologyExists" role="region">
<p>There are currently no local ontologies. You must create a <a href='${urls.base}/editForm?controller=Ontology'>new local ontology</a></p>
<p>There are currently no local ontologies. You must create a <a href='${urls.base}/editForm?controller=Ontology'>new local ontology.</a></p>
</section>
<#--else if local ontologies exist and local classes exist, show drop-down of local classes-->