Contents
In Plone, there are two loosely coupled member related subsystems
The following view method code will get the username for the logged in user.
Example:
from Products.CMFCore.utils import getToolByName
def getActiveUser(self):
"""
"""
mt = getToolByName(self.context, 'portal_membership')
if mt.isAnonymousUser(): # the user has not logged in
return None
else:
member = mt.getAuthenticatedMember()
username = member.getUserName()
return username
or in template:
username context/portal_membership/getAuthenticatedMember/getUserName
Groups are stored as PloneGroup objects, which is subclass of PloneUser.
Getting all groups on the site is possible through acl_users and source_groups folder which provide functionality to manipulate Plone groups.
Example to get only ids:
acl_users = site.acl_users
groups = acl.source_groups.getGroupIds() # Iterable of id strings
Example to get full group information:
site = context.portal_url.getPortalObject()
users = site.acl_users
list = users.source_groups.getGroups()
for group in list:
# group is PloneGroup object
yield (group.getName(), group.title)
Below is an example how to get groups for the logged in user:
(portal.portal_membership.getAuthenticatedMember().has_role('Manager')) or
('Organizzazione' in portal.portal_membership.getAuthenticatedMember().getGroups())
Warning
Deprecation: This method won’t work in Plone 4.