[Yanel-commits] rev 30799 - public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet

michi at wyona.com michi at wyona.com
Sat Jan 26 21:15:21 CET 2008


Author: michi
Date: 2008-01-26 21:15:20 +0100 (Sat, 26 Jan 2008)
New Revision: 30799

Modified:
   public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java
Log:
toolbar switch refactored and also check is identity is WORLD

Modified: public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java
===================================================================
--- public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java	2008-01-26 15:55:25 UTC (rev 30798)
+++ public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java	2008-01-26 20:15:20 UTC (rev 30799)
@@ -230,8 +230,8 @@
         HttpSession session = request.getSession(true);
         Resource resource = getResource(request, response);
 
-        // Check for toolbar ...
-        checkToolbar(request);
+        // Enable or disable toolbar
+        switchToolbar(request);
 
         // Check for requests refered by WebDAV
         String yanelWebDAV = request.getParameter("yanel.webdav");
@@ -274,21 +274,21 @@
     }
     
     /**
-     * Checks if the yanel.toolbar request-param is set and stores
+     * Checks if the yanel.toolbar request parameter is set and stores
      * the value of the parameter in the session.
      * @param request
      */
-    private void checkToolbar(HttpServletRequest request) {
+    private void switchToolbar(HttpServletRequest request) {
         // Check for toolbar ...
         String yanelToolbar = request.getParameter("yanel.toolbar");
         if(yanelToolbar != null) {
             HttpSession session = request.getSession(false);
             if (yanelToolbar.equals("on")) {
                 log.info("Turn on toolbar!");
-                session.setAttribute(TOOLBAR_KEY, "on");
+                enableToolbar(request);
             } else if (yanelToolbar.equals("off")) {
                 log.info("Turn off toolbar!");
-                session.setAttribute(TOOLBAR_KEY, "off");
+                disableToolbar(request);
             } else {
                 log.warn("No such toolbar value: " + yanelToolbar);
             }
@@ -716,8 +716,8 @@
                 }
             }
 
-            // Check for toolbar ...
-            checkToolbar(request);
+            // Enable or disable toolbar
+            switchToolbar(request);
             
             getContent(request, response);
         }
@@ -849,8 +849,7 @@
             //log.debug("url: " + request.getServletPath());
             //log.debug("state of view: " + stateOfView);
             /*String area = null;
-            Object toolbarAttr = request.getSession().getAttribute(TOOLBAR_KEY); 
-            if (toolbarAttr != null && toolbarAttr.equals("on")) {
+            if (isToolbarEnabled(request)) {
                 area = "authoring";
             } else {
                 area = "live";
@@ -1648,7 +1647,7 @@
         //buf.append("Version: " + yanel.getVersion() + "-r" + yanel.getRevision() + "  ");
         buf.append("Realm: <b>" + resource.getRealm().getName() + "</b>&#160;&#160;");
         Identity identity = getIdentity(request);
-        if (identity != null) {
+        if (identity != null && !identity.isWorld()) {
             buf.append("User: <b>" + identity.getUsername() + "</b>");
         } else {
             buf.append("User: <b>Not signed in!</b>");
@@ -1767,7 +1766,9 @@
             IdentityMap identityMap = (IdentityMap)session.getAttribute(IDENTITY_MAP_KEY);
             if (identityMap != null) {
                 Identity identity = (Identity)identityMap.get(realm.getID());
-                if (identity != null) return identity;
+                if (identity != null) {
+                    return identity;
+                }
             }
         }
 
@@ -2002,8 +2003,8 @@
             }
             
             // Possibly embed toolbar:
-            String toolbar = (String) request.getSession(true).getAttribute(TOOLBAR_KEY);
-            if (toolbar != null && toolbar.equals("on")) {
+            // TODO: Check if user is authorized to actually see toolbar (Current flaw: Enabled Toolbar, Login, Toolbar is enabled, Logout, Toolbar is still visible!)
+            if (isToolbarEnabled(request)) {
                 String mimeType = view.getMimeType();
                 if (mimeType != null && mimeType.indexOf("html") > 0) {
                     // TODO: What about other query strings or frames or TinyMCE?
@@ -2179,4 +2180,27 @@
         writer.print(sb.toString());
         return;
     }
+
+    /**
+     *
+     */
+    private void enableToolbar(HttpServletRequest request) {
+        request.getSession(true).setAttribute(TOOLBAR_KEY, "on");
+    }
+
+    /**
+     *
+     */
+    private void disableToolbar(HttpServletRequest request) {
+        request.getSession(true).setAttribute(TOOLBAR_KEY, "off");
+    }
+
+    /**
+     *
+     */
+    private boolean isToolbarEnabled(HttpServletRequest request) {
+        String toolbarStatus = (String) request.getSession(true).getAttribute(TOOLBAR_KEY);
+        if (toolbarStatus != null && toolbarStatus.equals("on")) return true;
+        return false;
+    }
 }



More information about the Yanel-commits mailing list