Author: julien(a)jboss.com
Date: 2007-06-20 17:29:53 -0400 (Wed, 20 Jun 2007)
New Revision: 7490
Modified:
tags/JBoss_Portal_2_6_0_CR3/core/src/main/org/jboss/portal/core/ui/portlet/user/UserPortlet.java
tags/JBoss_Portal_2_6_0_CR3/identity/src/main/org/jboss/portal/identity/UserProfileModule.java
tags/JBoss_Portal_2_6_0_CR3/identity/src/main/org/jboss/portal/identity/db/HibernateUserProfileModuleImpl.java
tags/JBoss_Portal_2_6_0_CR3/identity/src/main/org/jboss/portal/test/identity/IdentityTest.java
tags/JBoss_Portal_2_6_0_CR3/identity/src/main/org/jboss/portal/test/identity/db/DBIdentityTestCase.java
tags/JBoss_Portal_2_6_0_CR3/identity/src/main/org/jboss/portal/test/identity/ldap/LDAPIdentityTestCase.java
Log:
allow user to nillate his theme property to revert to portal theme
Modified:
tags/JBoss_Portal_2_6_0_CR3/core/src/main/org/jboss/portal/core/ui/portlet/user/UserPortlet.java
===================================================================
---
tags/JBoss_Portal_2_6_0_CR3/core/src/main/org/jboss/portal/core/ui/portlet/user/UserPortlet.java 2007-06-20
21:23:37 UTC (rev 7489)
+++
tags/JBoss_Portal_2_6_0_CR3/core/src/main/org/jboss/portal/core/ui/portlet/user/UserPortlet.java 2007-06-20
21:29:53 UTC (rev 7490)
@@ -871,7 +871,7 @@
ctx.put("REALEMAIL", (String)getProperty(user,
P3PConstants.INFO_USER_BUSINESS_INFO_ONLINE_EMAIL));
ctx.put("FAKEEMAIL", (String)getProperty(user,
User.INFO_USER_EMAIL_FAKE));
ctx.put("THEME", (String)getProperty(user, User.INFO_USER_THEME));
- ctx.put("VIEWREALEMAIL", ((String)getProperty(user,
User.INFO_USER_VIEW_EMAIL_VIEW_REAL)).equals("true") ?
"checked=\"checked\"" : "");
+ ctx.put("VIEWREALEMAIL", (getProperty(user,
User.INFO_USER_VIEW_EMAIL_VIEW_REAL)).equals("true") ?
"checked=\"checked\"" : "");
ctx.put("HOMEPAGE", (String)getProperty(user,User.INFO_USER_HOMEPAGE));
ctx.put("ICQ", (String)getProperty(user,User.INFO_USER_IM_ICQ));
ctx.put("AIM", (String)getProperty(user,User.INFO_USER_IM_AIM));
@@ -1029,7 +1029,24 @@
log.error("Cannot convert locale format", e);
}
- putNonEmptyProperty(user, User.INFO_USER_THEME, theme);
+ // It means we want to erase the current theme choice and use the default
provided by the site
+ if (theme != null && theme.length() == 0)
+ {
+ try
+ {
+ userProfileModule.setProperty(user, User.INFO_USER_THEME, null);
+ }
+ catch (IdentityException e)
+ {
+ log.error("Cannot update theme property", e);
+ }
+ }
+ else
+ {
+ putNonEmptyProperty(user, User.INFO_USER_THEME, theme);
+ }
+
+ //
putNonEmptyProperty(user, User.INFO_USER_HOMEPAGE, homepage);
putNonEmptyProperty(user, User.INFO_USER_SECURITY_QUESTION, question);
putNonEmptyProperty(user, User.INFO_USER_SECURITY_ANSWER, answer);
@@ -1374,8 +1391,6 @@
private void putNonEmptyProperty(User user, String key, Object value)
{
-
-
if (value != null)
{
if (value instanceof String && !(((String)value).trim().length() != 0)
)
Modified:
tags/JBoss_Portal_2_6_0_CR3/identity/src/main/org/jboss/portal/identity/UserProfileModule.java
===================================================================
---
tags/JBoss_Portal_2_6_0_CR3/identity/src/main/org/jboss/portal/identity/UserProfileModule.java 2007-06-20
21:23:37 UTC (rev 7489)
+++
tags/JBoss_Portal_2_6_0_CR3/identity/src/main/org/jboss/portal/identity/UserProfileModule.java 2007-06-20
21:29:53 UTC (rev 7490)
@@ -48,10 +48,10 @@
public Object getProperty(User user, String propertyName) throws IdentityException,
IllegalArgumentException;
/**
- * Sets user property
+ * Sets user property. If the property value is null the property will be removed.
* @param user
* @param name
- * @param property
+ * @param property value
* @throws IdentityException
* @throws IllegalArgumentException
*/
Modified:
tags/JBoss_Portal_2_6_0_CR3/identity/src/main/org/jboss/portal/identity/db/HibernateUserProfileModuleImpl.java
===================================================================
---
tags/JBoss_Portal_2_6_0_CR3/identity/src/main/org/jboss/portal/identity/db/HibernateUserProfileModuleImpl.java 2007-06-20
21:23:37 UTC (rev 7489)
+++
tags/JBoss_Portal_2_6_0_CR3/identity/src/main/org/jboss/portal/identity/db/HibernateUserProfileModuleImpl.java 2007-06-20
21:29:53 UTC (rev 7490)
@@ -142,14 +142,21 @@
throw new IdentityException("Property is not allowed for write access:
" + propertyName);
}
- if (!pi.getType().equals(propertyValue.getClass().getName()))
+ if (propertyValue != null &&
!pi.getType().equals(propertyValue.getClass().getName()))
{
throw new IdentityException("Wrong property type. Must be: " +
pi.getType() + "; and found: " + propertyValue.getClass().getName());
}
//if value is null reset property
- dbUser.getProfileMap().put(propertyName, propertyValue);
+ if (propertyValue != null)
+ {
+ dbUser.getProfileMap().put(propertyName, propertyValue);
+ }
+ else
+ {
+ dbUser.getProfileMap().remove(propertyName);
+ }
}
public Map getProperties(User user) throws IdentityException
Modified:
tags/JBoss_Portal_2_6_0_CR3/identity/src/main/org/jboss/portal/test/identity/IdentityTest.java
===================================================================
---
tags/JBoss_Portal_2_6_0_CR3/identity/src/main/org/jboss/portal/test/identity/IdentityTest.java 2007-06-20
21:23:37 UTC (rev 7489)
+++
tags/JBoss_Portal_2_6_0_CR3/identity/src/main/org/jboss/portal/test/identity/IdentityTest.java 2007-06-20
21:29:53 UTC (rev 7490)
@@ -501,6 +501,29 @@
ctx.commit();
}
+ public void testNullProperty() throws Exception
+ {
+ ctx.begin();
+
+ User user = userModule.createUser("testname", "testpassword");
+
+ userProfileModule.setProperty(user, User.INFO_USER_THEME, "some theme
value");
+
+ Object o = userProfileModule.getProperty(user, User.INFO_USER_THEME);
+
+ assertNotNull(o);
+ assertEquals(o.toString(), "some theme value");
+
+ userProfileModule.setProperty(user, User.INFO_USER_THEME, null);
+
+ o = userProfileModule.getProperty(user, User.INFO_USER_THEME);
+
+ assertNull(o);
+
+ ctx.commit();
+
+ }
+
public void testGetProperties() throws Exception
{
ctx.begin();
Modified:
tags/JBoss_Portal_2_6_0_CR3/identity/src/main/org/jboss/portal/test/identity/db/DBIdentityTestCase.java
===================================================================
---
tags/JBoss_Portal_2_6_0_CR3/identity/src/main/org/jboss/portal/test/identity/db/DBIdentityTestCase.java 2007-06-20
21:23:37 UTC (rev 7489)
+++
tags/JBoss_Portal_2_6_0_CR3/identity/src/main/org/jboss/portal/test/identity/db/DBIdentityTestCase.java 2007-06-20
21:29:53 UTC (rev 7490)
@@ -187,6 +187,11 @@
commit();
}
+ public void testNullProperty() throws Exception
+ {
+ utc.testNullProperty();
+ }
+
public void testGetProperties() throws Exception
{
utc.testGetProperties();
Modified:
tags/JBoss_Portal_2_6_0_CR3/identity/src/main/org/jboss/portal/test/identity/ldap/LDAPIdentityTestCase.java
===================================================================
---
tags/JBoss_Portal_2_6_0_CR3/identity/src/main/org/jboss/portal/test/identity/ldap/LDAPIdentityTestCase.java 2007-06-20
21:23:37 UTC (rev 7489)
+++
tags/JBoss_Portal_2_6_0_CR3/identity/src/main/org/jboss/portal/test/identity/ldap/LDAPIdentityTestCase.java 2007-06-20
21:29:53 UTC (rev 7490)
@@ -176,4 +176,10 @@
{
utc.testStaticProperty();
}
+
+ public void testNullProperty() throws Exception
+ {
+ utc.testNullProperty();
+ }
+
}