/** 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.getL10n(), pageTitleKey, "noPermission.html");
this.webInterface = webInterface;
+ this.requireLogin = requireLogin;
template.set("webInterface", webInterface);
}
*/
protected Session getCurrentSession(ToadletContext toadletContenxt, boolean create) {
try {
- Session session = webInterface.sessionManager().useSession(toadletContenxt);
+ Session session = webInterface.getSessionManager().useSession(toadletContenxt);
if (create && (session == null)) {
- session = webInterface.sessionManager().createSession(UUID.randomUUID().toString(), toadletContenxt);
+ session = webInterface.getSessionManager().createSession(UUID.randomUUID().toString(), toadletContenxt);
}
return session;
} catch (freenet.clients.http.RedirectException re1) {
if (soneId == null) {
return null;
}
- for (Sone sone : webInterface.core().getSones()) {
- if (sone.getId().equals(soneId)) {
- return sone;
- }
- }
- return null;
+ return webInterface.getCore().getLocalSone(soneId);
}
/**
* 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);
}
/**