Store the core in all template contexts.
[Sone.git] / src / main / java / net / pterodactylus / sone / web / SoneTemplatePage.java
index 7392de4..b7e36f4 100644 (file)
@@ -120,7 +120,6 @@ public class SoneTemplatePage extends FreenetTemplatePage {
                this.pageTitleKey = pageTitleKey;
                this.webInterface = webInterface;
                this.requireLogin = requireLogin;
-               template.getInitialContext().set("webInterface", webInterface);
        }
 
        //
@@ -251,6 +250,7 @@ public class SoneTemplatePage extends FreenetTemplatePage {
        protected void processTemplate(Request request, TemplateContext templateContext) throws RedirectException {
                super.processTemplate(request, templateContext);
                Sone currentSone = getCurrentSone(request.getToadletContext(), false);
+               templateContext.set("core", webInterface.getCore());
                templateContext.set("currentSone", currentSone);
                templateContext.set("localSones", webInterface.getCore().getLocalSones());
                templateContext.set("request", request);
@@ -296,7 +296,18 @@ public class SoneTemplatePage extends FreenetTemplatePage {
         * {@inheritDoc}
         */
        @Override
+       protected boolean isFullAccessOnly() {
+               return webInterface.getCore().getPreferences().isRequireFullAccess();
+       }
+
+       /**
+        * {@inheritDoc}
+        */
+       @Override
        public boolean isEnabled(ToadletContext toadletContext) {
+               if (webInterface.getCore().getPreferences().isRequireFullAccess() && !toadletContext.isAllowedFullAccess()) {
+                       return false;
+               }
                if (requiresLogin()) {
                        return getCurrentSone(toadletContext, false) != null;
                }