/** The Sone core. */
protected final WebInterface webInterface;
+ /** Whether to require a login. */
+ private final boolean requireLogin;
+
/**
- * Creates a new template page for Freetalk.
+ * Creates a new template page for Freetalk that does not require the user
+ * to be logged in.
*
* @param path
* The path of the page
* The Sone web interface
*/
public SoneTemplatePage(String path, Template template, String pageTitleKey, WebInterface webInterface) {
- super(path, template, webInterface.l10n(), pageTitleKey);
+ this(path, template, pageTitleKey, webInterface, false);
+ }
+
+ /**
+ * Creates a new template page for Freetalk.
+ *
+ * @param path
+ * The path of the page
+ * @param template
+ * The template to render
+ * @param pageTitleKey
+ * The l10n key of the page title
+ * @param webInterface
+ * The Sone web interface
+ * @param requireLogin
+ * Whether this page requires a login
+ */
+ public SoneTemplatePage(String path, Template template, String pageTitleKey, WebInterface webInterface, boolean requireLogin) {
+ super(path, template, webInterface.l10n(), pageTitleKey, "noPermission.html");
this.webInterface = webInterface;
+ this.requireLogin = requireLogin;
template.set("webInterface", webInterface);
}
return null;
}
String soneId = (String) session.getAttribute("Sone.CurrentSone");
+ if (soneId == null) {
+ return null;
+ }
for (Sone sone : webInterface.core().getSones()) {
if (sone.getId().equals(soneId)) {
return sone;
}
/**
+ * {@inheritDoc}
+ */
+ @Override
+ protected String getShortcutIcon() {
+ return "images/icon.png";
+ }
+
+ /**
* Returns whether this page requires the user to log in.
*
* @return {@code true} if the user is required to be logged in to use this
* page, {@code false} otherwise
*/
protected boolean requiresLogin() {
- return false;
+ return requireLogin;
}
/**
protected void processTemplate(Request request, Template template) throws RedirectException {
super.processTemplate(request, template);
template.set("currentSone", getCurrentSone(request.getToadletContext()));
+ template.set("request", request);
}
/**