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);