/** 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) {
/**
* Returns the currently logged in Sone.
*
- * @param toadletContenxt
+ * @param toadletContext
* The toadlet context
* @return The currently logged in Sone, or {@code null} if no Sone is
* currently logged in
*/
- protected Sone getCurrentSone(ToadletContext toadletContenxt) {
- Session session = getCurrentSession(toadletContenxt);
+ protected Sone getCurrentSone(ToadletContext toadletContext) {
+ Session session = getCurrentSession(toadletContext);
if (session == null) {
return null;
}
String soneId = (String) session.getAttribute("Sone.CurrentSone");
- for (Sone sone : webInterface.core().localSones()) {
- if (sone.getId().equals(soneId)) {
- return sone;
- }
+ if (soneId == null) {
+ return null;
}
- return null;
+ return webInterface.getCore().getLocalSone(soneId, false);
}
/**
}
/**
+ * {@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);
}
/**