Merge branch 'master' into next
authorDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Fri, 10 Dec 2010 21:24:33 +0000 (22:24 +0100)
committerDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Fri, 10 Dec 2010 21:24:33 +0000 (22:24 +0100)
1  2 
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
        }
  
        /**
+        * {@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.