Fix broken site admin links

This commit is contained in:
Graham Triggs 2017-08-31 00:02:57 +01:00
parent 3f655b7408
commit 04f61c466f

View file

@ -41,41 +41,46 @@ public class BaseSiteAdminController extends FreemarkerHttpServlet {
private static final List<AdminUrl> siteMaintenanceUrls = new ArrayList<>(); private static final List<AdminUrl> siteMaintenanceUrls = new ArrayList<>();
private static final List<AdminUrl> siteConfigData = new ArrayList<>(); private static final List<AdminUrl> siteConfigData = new ArrayList<>();
public static void registerSiteMaintenanceUrl(String key, String url, AuthorizationRequest permission) { public static void registerSiteMaintenanceUrl(String key, String url, ParamMap urlParams, AuthorizationRequest permission) {
AdminUrl adminUrl = new AdminUrl(); AdminUrl adminUrl = new AdminUrl();
adminUrl.key = key; adminUrl.key = key;
adminUrl.url = url; adminUrl.url = url;
adminUrl.urlParams = urlParams;
adminUrl.permission = permission; adminUrl.permission = permission;
siteMaintenanceUrls.add(adminUrl); siteMaintenanceUrls.add(adminUrl);
} }
public static void registerSiteConfigData(String key, String url, AuthorizationRequest permission) { public static void registerSiteConfigData(String key, String url, ParamMap urlParams, AuthorizationRequest permission) {
AdminUrl adminUrl = new AdminUrl(); AdminUrl adminUrl = new AdminUrl();
adminUrl.key = key; adminUrl.key = key;
adminUrl.url = url; adminUrl.url = url;
adminUrl.urlParams = urlParams;
adminUrl.permission = permission; adminUrl.permission = permission;
siteConfigData.add(adminUrl); siteConfigData.add(adminUrl);
} }
static { static {
registerSiteMaintenanceUrl("recomputeInferences", UrlBuilder.getUrl("/RecomputeInferences"), SimplePermission.USE_MISCELLANEOUS_ADMIN_PAGES.ACTION); registerSiteMaintenanceUrl("recomputeInferences", "/RecomputeInferences", null, SimplePermission.USE_MISCELLANEOUS_ADMIN_PAGES.ACTION);
registerSiteMaintenanceUrl("rebuildSearchIndex", UrlBuilder.getUrl("/SearchIndex"), IndexController.REQUIRED_ACTIONS); registerSiteMaintenanceUrl("rebuildSearchIndex", "/SearchIndex", null, IndexController.REQUIRED_ACTIONS);
registerSiteMaintenanceUrl("startupStatus", UrlBuilder.getUrl("/startupStatus"), SimplePermission.SEE_STARTUP_STATUS.ACTION); registerSiteMaintenanceUrl("startupStatus", "/startupStatus", null, SimplePermission.SEE_STARTUP_STATUS.ACTION);
registerSiteMaintenanceUrl("restrictLogins", UrlBuilder.getUrl("/admin/restrictLogins"), SimplePermission.LOGIN_DURING_MAINTENANCE.ACTION); registerSiteMaintenanceUrl("restrictLogins", "/admin/restrictLogins", null, SimplePermission.LOGIN_DURING_MAINTENANCE.ACTION);
registerSiteMaintenanceUrl("activateDeveloperPanel", "javascript:new DeveloperPanel(developerAjaxUrl).setupDeveloperPanel({developer_enabled: true});", SimplePermission.ENABLE_DEVELOPER_PANEL.ACTION); registerSiteMaintenanceUrl("activateDeveloperPanel", "javascript:new DeveloperPanel(developerAjaxUrl).setupDeveloperPanel({developer_enabled: true});", null, SimplePermission.ENABLE_DEVELOPER_PANEL.ACTION);
registerSiteConfigData("userAccounts", "/accountsAdmin", null, SimplePermission.MANAGE_USER_ACCOUNTS.ACTION);
registerSiteConfigData("manageProxies", "/manageProxies", null, SimplePermission.MANAGE_PROXIES.ACTION);
registerSiteConfigData("siteInfo", "/editForm", new ParamMap(new String[] {"controller", "ApplicationBean"}), SimplePermission.EDIT_SITE_INFORMATION.ACTION);
registerSiteConfigData("userAccounts", UrlBuilder.getUrl("/accountsAdmin"), SimplePermission.MANAGE_USER_ACCOUNTS.ACTION);
registerSiteConfigData("manageProxies", UrlBuilder.getUrl("/manageProxies"), SimplePermission.MANAGE_PROXIES.ACTION);
registerSiteConfigData("siteInfo", UrlBuilder.getUrl("/editForm", "controller", "ApplicationBean"), SimplePermission.EDIT_SITE_INFORMATION.ACTION);
//TODO: Add specific permissions for page management //TODO: Add specific permissions for page management
registerSiteConfigData("menuManagement", UrlBuilder.getUrl("/individual", registerSiteConfigData("menuManagement", "/individual", new ParamMap(new String[] {
"uri", "http://vitro.mannlib.cornell.edu/ontologies/display/1.1#DefaultMenu", "uri", "http://vitro.mannlib.cornell.edu/ontologies/display/1.1#DefaultMenu",
"switchToDisplayModel", "true"), SimplePermission.MANAGE_MENUS.ACTION); "switchToDisplayModel", "true" }), SimplePermission.MANAGE_MENUS.ACTION);
registerSiteConfigData("pageManagement", UrlBuilder.getUrl("/pageList"), SimplePermission.MANAGE_MENUS.ACTION);
registerSiteConfigData("pageManagement", "/pageList", null, SimplePermission.MANAGE_MENUS.ACTION);
} }
@Override @Override
@ -108,7 +113,15 @@ public class BaseSiteAdminController extends FreemarkerHttpServlet {
for (AdminUrl adminUrl : siteMaintenanceUrls) { for (AdminUrl adminUrl : siteMaintenanceUrls) {
if (adminUrl.permission == null || PolicyHelper.isAuthorizedForActions(vreq, SimplePermission.USE_MISCELLANEOUS_ADMIN_PAGES.ACTION)) { if (adminUrl.permission == null || PolicyHelper.isAuthorizedForActions(vreq, SimplePermission.USE_MISCELLANEOUS_ADMIN_PAGES.ACTION)) {
if (adminUrl.url.startsWith("javascript:")) {
urls.put(adminUrl.key, adminUrl.url); urls.put(adminUrl.key, adminUrl.url);
} else {
if (adminUrl.urlParams != null) {
urls.put(adminUrl.key, UrlBuilder.getUrl(adminUrl.url, adminUrl.urlParams));
} else {
urls.put(adminUrl.key, UrlBuilder.getUrl(adminUrl.url));
}
}
} }
} }
@ -163,7 +176,15 @@ public class BaseSiteAdminController extends FreemarkerHttpServlet {
for (AdminUrl adminUrl : siteConfigData) { for (AdminUrl adminUrl : siteConfigData) {
if (adminUrl.permission == null || PolicyHelper.isAuthorizedForActions(vreq, SimplePermission.USE_MISCELLANEOUS_ADMIN_PAGES.ACTION)) { if (adminUrl.permission == null || PolicyHelper.isAuthorizedForActions(vreq, SimplePermission.USE_MISCELLANEOUS_ADMIN_PAGES.ACTION)) {
if (adminUrl.url.startsWith("javascript:")) {
data.put(adminUrl.key, adminUrl.url); data.put(adminUrl.key, adminUrl.url);
} else {
if (adminUrl.urlParams != null) {
data.put(adminUrl.key, UrlBuilder.getUrl(adminUrl.url, adminUrl.urlParams));
} else {
data.put(adminUrl.key, UrlBuilder.getUrl(adminUrl.url));
}
}
} }
} }
@ -230,6 +251,7 @@ public class BaseSiteAdminController extends FreemarkerHttpServlet {
final static class AdminUrl { final static class AdminUrl {
String key; String key;
String url; String url;
ParamMap urlParams;
AuthorizationRequest permission; AuthorizationRequest permission;
} }
} }