Author: tdraier
Date: Tue Aug  8 16:58:18 2006
New Revision: 14866

URL: https://svndev.jahia.net/websvn/listing.php?sc=1&rev=14866&repname=jahia
Log:
load user properties when needed

Modified:
    trunk/core/src/java/org/jahia/services/usermanager/JahiaLDAPUser.java
    
trunk/core/src/java/org/jahia/services/usermanager/JahiaUserManagerDBProvider.java
    
trunk/core/src/java/org/jahia/services/usermanager/JahiaUserManagerLDAPProvider.java

Modified: trunk/core/src/java/org/jahia/services/usermanager/JahiaLDAPUser.java
URL: 
https://svndev.jahia.net/websvn/diff.php?path=/trunk/core/src/java/org/jahia/services/usermanager/JahiaLDAPUser.java&rev=14866&repname=jahia
==============================================================================
--- trunk/core/src/java/org/jahia/services/usermanager/JahiaLDAPUser.java 
(original)
+++ trunk/core/src/java/org/jahia/services/usermanager/JahiaLDAPUser.java Tue 
Aug  8 16:58:18 2006
@@ -39,8 +39,9 @@
     private static org.apache.log4j.Logger logger =
             org.apache.log4j.Logger.getLogger (JahiaLDAPUser.class);
 
-    static final public String USERKEY_LDAP_PREFIX = "{ldap}";
+    private static final long serialVersionUID = 949596639726348808L;
 
+    static final public String USERKEY_LDAP_PREFIX = "{ldap}";
     /** User unique identification number in the database. */
     private int mID;
 
@@ -74,6 +75,9 @@
     private static final String mLANGUAGES_MIX_PROP = "langage_mix";
     private static final String mLANGUAGES_ONLYUSER_PROP = "language_onlyuser";
 
+    private transient JahiaUserManagerLDAPProvider provider;
+    private transient boolean propLoaded = false;
+
     /**
      * Create a new JahiaDBUser class instance. The passed in password must
      * already be encrypted, no ecryption will be done. If the passed in
@@ -89,7 +93,7 @@
      */
     protected JahiaLDAPUser (int id, String name, String password,
                              String userKey, int siteID,
-                           UserProperties properties, String dn)
+                           UserProperties properties, String dn, 
JahiaUserManagerLDAPProvider provider)
     {
         mID = id;
         mUsername = name;
@@ -100,6 +104,7 @@
         if (properties != null) {
             mProperties = properties;
         }
+        this.provider = provider;
     }
 
 
@@ -184,21 +189,25 @@
      * @return UserProperties
      */
     public UserProperties getUserProperties() {
+        if (!propLoaded ) {
+            provider.mapDBToJahiaProperties(mProperties, mUserKey);
+            propLoaded = true;
+        }
         return mProperties;
     }
 
     //
     public String getProperty (String key) {
 
-        if ((mProperties != null) && (key != null)) {
-            return mProperties.getProperty (key);
+        if ((getUserProperties() != null) && (key != null)) {
+            return getUserProperties().getProperty (key);
         }
         return null;
     }
 
     public UserProperty getUserProperty(String key) {
-        if ((mProperties != null) && (key != null)) {
-            return mProperties.getUserProperty (key);
+        if ((getUserProperties() != null) && (key != null)) {
+            return getUserProperties().getUserProperty (key);
         }
         return null;
     }
@@ -226,6 +235,7 @@
      */
     public synchronized boolean removeProperty (String key) {
         boolean result = false;
+        UserProperties mProperties = getUserProperties();
         if (mProperties == null) {
             return result;
         }
@@ -281,6 +291,7 @@
      */
     public synchronized boolean setProperty (String key, String value) {
         boolean result = false;
+        UserProperties mProperties = getUserProperties();
         if (mProperties == null) {
             return result;
         }
@@ -317,7 +328,7 @@
      */
     public int getHomepageID () {
 
-        if (mProperties != null) {
+        if (getUserProperties() != null) {
 
             try {
                 // Get the home page from the Jahia DB.
@@ -392,7 +403,7 @@
         output.append ("  - ID [" + Integer.toString (mID) + "]");
         output.append ("  - password [" + mPassword + "]\n");
 
-        if (mProperties != null) {
+        if (getUserProperties() != null) {
             output.append("  - properties :");
 
             Iterator nameIter = mProperties.propertyNameIterator();

Modified: 
trunk/core/src/java/org/jahia/services/usermanager/JahiaUserManagerDBProvider.java
URL: 
https://svndev.jahia.net/websvn/diff.php?path=/trunk/core/src/java/org/jahia/services/usermanager/JahiaUserManagerDBProvider.java&rev=14866&repname=jahia
==============================================================================
--- 
trunk/core/src/java/org/jahia/services/usermanager/JahiaUserManagerDBProvider.java
 (original)
+++ 
trunk/core/src/java/org/jahia/services/usermanager/JahiaUserManagerDBProvider.java
 Tue Aug  8 16:58:18 2006
@@ -62,8 +62,6 @@
     /** Root user unique identification number */
     public static final int ROOT_USER_ID = 0;
 
-    /** Guest user unique identification number */
-    public static final int GUEST_USER_ID = 1;
     private JahiaUserManager userManager = null;
 
     
//--------------------------------------------------------------------------

Modified: 
trunk/core/src/java/org/jahia/services/usermanager/JahiaUserManagerLDAPProvider.java
URL: 
https://svndev.jahia.net/websvn/diff.php?path=/trunk/core/src/java/org/jahia/services/usermanager/JahiaUserManagerLDAPProvider.java&rev=14866&repname=jahia
==============================================================================
--- 
trunk/core/src/java/org/jahia/services/usermanager/JahiaUserManagerLDAPProvider.java
 (original)
+++ 
trunk/core/src/java/org/jahia/services/usermanager/JahiaUserManagerLDAPProvider.java
 Tue Aug  8 16:58:18 2006
@@ -27,10 +27,10 @@
 import org.jahia.hibernate.manager.JahiaUserManager;
 import org.jahia.hibernate.manager.SpringContextSingleton;
 import org.jahia.registries.ServicesRegistry;
+import org.jahia.security.license.LicenseActionChecker;
 import org.jahia.services.cache.Cache;
 import org.jahia.services.cache.CacheService;
 import org.jahia.utils.JahiaTools;
-import org.jahia.security.license.LicenseActionChecker;
 
 import javax.naming.*;
 import javax.naming.directory.*;
@@ -859,7 +859,7 @@
         if (usingUserKey != null) {
             mapLDAPToJahiaProperties(userProps);
             // FIXME : Quick hack for merging Jahia DB user properties with 
LDAP user
-            mapDBToJahiaProperties (userProps, 
JahiaLDAPUser.USERKEY_LDAP_PREFIX + usingUserKey);
+//            mapDBToJahiaProperties (userProps, 
JahiaLDAPUser.USERKEY_LDAP_PREFIX + usingUserKey);
             /* EP : changes the code to handle the name of the user as defined 
in properties file.
             The name of the user is the value of the LDAP_USERNAME_ATTRIBUTE 
properties */
             String name = usingUserKey;
@@ -879,7 +879,7 @@
                         usingUserKey,
                         0,
                         userProps,
-                        dn);
+                        dn, this);
         } else {
             logger.debug ("Ignoring entry " + dn +
                     " because it has no valid " +
@@ -1473,7 +1473,7 @@
      * @param userProps    the user properties to set
      * @param usingUserKey the user whose the properties has to be extracted.
      */
-    private void mapDBToJahiaProperties (UserProperties userProps,
+    public void mapDBToJahiaProperties (UserProperties userProps,
                                          String usingUserKey) {
         JahiaUserManager userManager = (JahiaUserManager) 
SpringContextSingleton.getInstance().getContext().getBean(JahiaUserManager.class.getName());
         UserProperties dbProperties = userManager.getUserProperties(-1, 
PROVIDER_NAME, usingUserKey);

Reply via email to