[CMF-checkins] CVS: CMF/CMFCollector - util.py:1.7

Ken Manheimer klm@zope.com
Sun, 28 Oct 2001 23:48:04 -0500


Update of /cvs-repository/CMF/CMFCollector
In directory cvs.zope.org:/tmp/cvs-serv18090

Modified Files:
	util.py 
Log Message:
safeGetProperty(): Provides for members from member folders with
getProperty() signatures that don't allow for defaulting (eg, the
current implementation of new.zope.org's LDAP user folder), and also
for non-member users, eg managers from the surrounding site.


=== CMF/CMFCollector/util.py 1.6 => 1.7 ===
     return (None, None)
 
+def safeGetProperty(userobj, property, default=None):
+    """Defaulting user.getProperty(), allowing for variant user folders."""
+    try:
+        return userobj.getProperty(property, default)
+    except TypeError:
+        try:
+            # Some (eg, our LDAP user folder) support getProperty but not
+            # defaulting:
+            return userobj.getProperty(property)
+        except:
+            return default
+    except AttributeError:
+        # Some don't support getProperty:
+        return getattr(userobj, property, default)
+        
+
 def cited_text(text, rfind=string.rfind, strip=string.strip):
     """Quote text for use in literal citations.