From: David ‘Bombe’ Roden Date: Fri, 10 Dec 2010 21:24:33 +0000 (+0100) Subject: Merge branch 'master' into next X-Git-Tag: beta-freefall-0.6.2-1~198 X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=commitdiff_plain;h=0ac5c61faa54b62f29bf8c8e9903919315810c80;hp=-c Merge branch 'master' into next --- 0ac5c61faa54b62f29bf8c8e9903919315810c80 diff --combined src/main/java/net/pterodactylus/sone/web/WebInterface.java index 1612e28,dc09d78..ee8b9bf --- a/src/main/java/net/pterodactylus/sone/web/WebInterface.java +++ b/src/main/java/net/pterodactylus/sone/web/WebInterface.java @@@ -26,7 -26,6 +26,7 @@@ import java.util.Collection import java.util.HashSet; import java.util.List; import java.util.Set; +import java.util.UUID; import java.util.logging.Level; import java.util.logging.Logger; @@@ -85,9 -84,7 +85,9 @@@ import net.pterodactylus.util.template. import net.pterodactylus.util.template.XmlFilter; import net.pterodactylus.util.thread.Ticker; import freenet.clients.http.SessionManager; +import freenet.clients.http.SessionManager.Session; import freenet.clients.http.ToadletContainer; +import freenet.clients.http.ToadletContext; import freenet.l10n.BaseL10n; /** @@@ -192,87 -189,6 +192,87 @@@ public class WebInterface implements Co } /** + * Returns the current session, creating a new session if there is no + * current session. + * + * @param toadletContenxt + * The toadlet context + * @return The current session, or {@code null} if there is no current + * session + */ + public Session getCurrentSession(ToadletContext toadletContenxt) { + return getCurrentSession(toadletContenxt, true); + } + + /** + * Returns the current session, creating a new session if there is no + * current session and {@code create} is {@code true}. + * + * @param toadletContenxt + * The toadlet context + * @param create + * {@code true} to create a new session if there is no current + * session, {@code false} otherwise + * @return The current session, or {@code null} if there is no current + * session + */ + public Session getCurrentSession(ToadletContext toadletContenxt, boolean create) { + Session session = getSessionManager().useSession(toadletContenxt); + if (create && (session == null)) { + session = getSessionManager().createSession(UUID.randomUUID().toString(), toadletContenxt); + } + return session; + } + + /** + * Returns the currently logged in Sone. + * + * @param toadletContext + * The toadlet context + * @return The currently logged in Sone, or {@code null} if no Sone is + * currently logged in + */ + public Sone getCurrentSone(ToadletContext toadletContext) { + return getCurrentSone(getCurrentSession(toadletContext)); + } + + /** + * Returns the currently logged in Sone. + * + * @param session + * The session + * @return The currently logged in Sone, or {@code null} if no Sone is + * currently logged in + */ + public Sone getCurrentSone(Session session) { + if (session == null) { + return null; + } + String soneId = (String) session.getAttribute("Sone.CurrentSone"); + if (soneId == null) { + return null; + } + return getCore().getLocalSone(soneId, false); + } + + /** + * Sets the currently logged in Sone. + * + * @param toadletContext + * The toadlet context + * @param sone + * The Sone to set as currently logged in + */ + public void setCurrentSone(ToadletContext toadletContext, Sone sone) { + Session session = getCurrentSession(toadletContext); + if (sone == null) { + session.removeAttribute("Sone.CurrentSone"); + } else { + session.setAttribute("Sone.CurrentSone", sone.getId()); + } + } + + /** * Returns the notification manager. * * @return The notification manager @@@ -575,6 -491,22 +575,22 @@@ } /** + * {@inheritDoc} + */ + @Override + public void postRemoved(Post post) { + /* TODO */ + } + + /** + * {@inheritDoc} + */ + @Override + public void replyRemoved(Reply reply) { + /* TODO */ + } + + /** * Template provider implementation that uses * {@link WebInterface#createReader(String)} to load templates for * inclusion.