]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/pages/Page.java
fix: correct editable/non-editable DoB display in My Details
[gigi.git] / src / org / cacert / gigi / pages / Page.java
index 0497dae28b1722323d30fe0d8d33a4c2e0ebf8d8..8d64d94f93cb884bfd7a94836c18debea283ee36 100644 (file)
@@ -11,9 +11,10 @@ import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;
 
 import org.cacert.gigi.PermissionCheckable;
-import org.cacert.gigi.User;
+import org.cacert.gigi.dbObjects.User;
 import org.cacert.gigi.localisation.Language;
 import org.cacert.gigi.output.template.Template;
+import org.cacert.gigi.util.AuthorizationContext;
 
 /**
  * This class encapsulates a sub page of Gigi. A template residing nearby this
@@ -102,30 +103,29 @@ public abstract class Page implements PermissionCheckable {
         return title;
     }
 
-    public void setTitle(String title) {
-        this.title = title;
-    }
-
     public static Language getLanguage(ServletRequest req) {
         HttpSession session = ((HttpServletRequest) req).getSession();
-        Locale sessval = (Locale) session.getAttribute(Language.SESSION_ATTRIB_NAME);
-        if (sessval != null) {
-            Language l = Language.getInstance(sessval);
-            if (l != null) {
-                return l;
+        synchronized (session) {
+
+            Locale sessval = (Locale) session.getAttribute(Language.SESSION_ATTRIB_NAME);
+            if (sessval != null) {
+                Language l = Language.getInstance(sessval);
+                if (l != null) {
+                    return l;
+                }
             }
-        }
-        Enumeration<Locale> langs = req.getLocales();
-        while (langs.hasMoreElements()) {
-            Locale c = langs.nextElement();
-            Language l = Language.getInstance(c);
-            if (l != null) {
-                session.setAttribute(Language.SESSION_ATTRIB_NAME, l.getLocale());
-                return l;
+            Enumeration<Locale> langs = req.getLocales();
+            while (langs.hasMoreElements()) {
+                Locale c = langs.nextElement();
+                Language l = Language.getInstance(c);
+                if (l != null) {
+                    session.setAttribute(Language.SESSION_ATTRIB_NAME, l.getLocale());
+                    return l;
+                }
             }
+            session.setAttribute(Language.SESSION_ATTRIB_NAME, Locale.ENGLISH);
+            return Language.getInstance(Locale.ENGLISH);
         }
-        session.setAttribute(Language.SESSION_ATTRIB_NAME, Locale.ENGLISH);
-        return Language.getInstance(Locale.ENGLISH);
     }
 
     public static String translate(ServletRequest req, String string) {
@@ -138,8 +138,8 @@ public abstract class Page implements PermissionCheckable {
     }
 
     @Override
-    public boolean isPermitted(User u) {
-        return !needsLogin() || u != null;
+    public boolean isPermitted(AuthorizationContext ac) {
+        return !needsLogin() || ac != null;
     }
 
 }