[Zope-dev] Listing a groups users via Python and portal_groups

J Cameron Cooper zope-dev at jcameroncooper.com
Thu Jul 21 17:20:36 EDT 2005


Takahashi, Michael wrote:
> Thanks for the help, I actually figured it out.  It turned out that
> portal.portal_groups.getGroupById("staff").getGroupUsers() was the
> solution.  However, the getGroupUsers() function returns a list of
> users, but not as strings.  So I had to convert the entire call with
> str() in order to run a comparison.
> 
> So in the end this is how I achieved what I needed:
> 
> portal.portal_membership.getAuthenticatedMember().getId() not in \
> str(portal.portal_groups.getGroupById("staff").getGroupUsers())

The 'getGroupUsers' is not a good idea in a CMF environment. You should 
use the methods from the group tools. Like the ones I mentioned by name. 
One of them even does exactly what you want::

   context.portal_groups.getGroupById('group1').getGroupMemberIds()

		--jcc

> -----Original Message-----
> From: J Cameron Cooper [mailto:zope-dev at jcameroncooper.com] 
> Sent: Thursday, July 21, 2005 12:36 PM
> To: Takahashi, Michael
> Cc: zope-dev at zope.org
> Subject: Re: [Zope-dev] Listing a groups users via Python and
> portal_groups
> 
> Takahashi, Michael wrote:
> 
> 
>>I'm trying to work on a function call using Python that will list the 
>>users of any specified group using the function portal_groups.
>>
>>I've been able to successfully do this the opposite way by getting the
> 
> 
>>users groups via portal_membership:
>>
>>portal.portal_membership.getAuthenticatedMember().getGroups()
>>
>>Which will return all groups this user is associated with.
>>
>>So I've been testing using portal_groups with function calls similar
> 
> to 
> 
>>this:
>>
>>portal.portal_groups.getGroupById("staff").getUsers()
>>
>>Where "staff" is the name of the group. This almost does what I need, 
>>but not quite close enough because it lists all groups and all users.
> 
> 
>>Any suggestions or help is greatly appreciated!
> 
> 
> It acquires 'getUsers' from somewhere, I guess.
> 
> Group objects have 'getGroupMemberIds' and 'getGroupMembers' methods.
> You can see this in Products.GroupUserFolder.GroupDataTool.GroupData.
> the Products.GroupUserFolder.interfaces.portal_groupdata is a bit
> cleaner, but seems a little behind the times, as it's missing
> 'getGroupMemberIds'.
> 
> Note that this isn't a good topic for zope-dev, but more for
> plone-users.
> 
> 		--jcc
> 
> 
> 




More information about the Zope-Dev mailing list