[CMF-checkins] CVS: CMF/CMFCore - MemberDataTool.py:1.27 MembershipTool.py:1.33
Jens Vagelpohl
jens@zope.com
Fri, 9 May 2003 11:04:48 -0400
Update of /cvs-repository/CMF/CMFCore
In directory cvs.zope.org:/tmp/cvs-serv27821/CMFCore
Modified Files:
MemberDataTool.py MembershipTool.py
Log Message:
- better member search method (searchMemberData) on the member data tool.
it makes sure to check both member data wrapper *and* user object for
the desired attribute, and it allows passing in a sequence of desired attributes.
=== CMF/CMFCore/MemberDataTool.py 1.26 => 1.27 ===
--- CMF/CMFCore/MemberDataTool.py:1.26 Thu Apr 3 15:46:46 2003
+++ CMF/CMFCore/MemberDataTool.py Fri May 9 11:04:18 2003
@@ -105,9 +105,41 @@
return [{ 'member_count' : member_count,
'orphan_count' : orphan_count }]
+ security.declarePrivate('searchMemberData')
+ def searchMemberData(self, search_param, search_term, attributes=()):
+ """ Search members. """
+ res = []
+
+ if not search_param:
+ return res
+
+ membership = getToolByName(self, 'portal_membership')
+
+ if len(attributes) == 0:
+ attributes = ('id', 'email')
+
+ if search_param == 'username':
+ search_param = 'id'
+
+ for user_wrapper in self._members.values():
+ u = membership.getMemberById(user_wrapper.id)
+ searched = u.getProperty(search_param, None)
+ if searched is not None and searched.find(search_term) != -1:
+ user_data = {}
+
+ for desired in attributes:
+ if desired == 'id':
+ user_data['username'] = u.getProperty(desired, '')
+ else:
+ user_data[desired] = u.getProperty(desired, '')
+
+ res.append(user_data)
+
+ return res
+
security.declarePrivate( 'searchMemberDataContents' )
def searchMemberDataContents( self, search_param, search_term ):
- """ Search members """
+ """ Search members. This method will be deprecated soon. """
res = []
if search_param == 'username':
=== CMF/CMFCore/MembershipTool.py 1.32 => 1.33 ===
--- CMF/CMFCore/MembershipTool.py:1.32 Thu Feb 13 02:44:07 2003
+++ CMF/CMFCore/MembershipTool.py Fri May 9 11:04:18 2003
@@ -356,7 +356,7 @@
""" Search the membership """
md = getToolByName( self, 'portal_memberdata' )
- return md.searchMemberDataContents( search_param, search_term )
+ return md.searchMemberData( search_param, search_term )
security.declareProtected(View, 'getCandidateLocalRoles')