* The Sone web interface
*/
public SoneTemplatePage(String path, Template template, String pageTitleKey, WebInterface webInterface) {
- super(path, template, webInterface.l10n(), pageTitleKey);
+ super(path, template, webInterface.l10n(), pageTitleKey, "noPermission.html");
this.webInterface = webInterface;
template.set("webInterface", webInterface);
}
/**
* 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;
}
- return (Sone) session.getAttribute("Sone.CurrentSone");
+ 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;
+ }
+ }
+ return null;
}
/**
*/
protected void setCurrentSone(ToadletContext toadletContext, Sone sone) {
Session session = getCurrentSession(toadletContext);
- session.setAttribute("Sone.CurrentSone", sone);
+ if (sone == null) {
+ session.removeAttribute("Sone.CurrentSone");
+ } else {
+ session.setAttribute("Sone.CurrentSone", sone.getId());
+ }
}
//
}
/**
+ * {@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
* {@inheritDoc}
*/
@Override
+ protected void processTemplate(Request request, Template template) throws RedirectException {
+ super.processTemplate(request, template);
+ template.set("currentSone", getCurrentSone(request.getToadletContext()));
+ template.set("request", request);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
protected String getRedirectTarget(Page.Request request) {
if (requiresLogin() && (getCurrentSone(request.getToadletContext()) == null)) {
return "login.html";