Remove Sone ID from session if the Sone is null.
[Sone.git] / src / main / java / net / pterodactylus / sone / web / SoneTemplatePage.java
index d6f1eb7..49bd26d 100644 (file)
@@ -110,7 +110,13 @@ public class SoneTemplatePage extends TemplatePage {
                if (session == null) {
                        return null;
                }
-               return (Sone) session.getAttribute("Sone.CurrentSone");
+               String soneId = (String) session.getAttribute("Sone.CurrentSone");
+               for (Sone sone : webInterface.core().localSones()) {
+                       if (sone.getId().equals(soneId)) {
+                               return sone;
+                       }
+               }
+               return null;
        }
 
        /**
@@ -123,7 +129,11 @@ public class SoneTemplatePage extends TemplatePage {
         */
        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());
+               }
        }
 
        //