@instance.memoizedproperty
def member_info(self):
"""
Returns a dict containing information about the currently
authenticated member for easy template access. If the member
is not currently logged in, the returned dictionary will be
empty.
"""
return self.member_info_for_member(self.loggedinmember)
def member_info_for_member(self, member):
result = {}
if member is not None:
if IReMember.providedBy(member):
id = member.getId()
fullname = member.getFullname()
membersince = prettyDate(member.getRawCreation_date())
lastlogin = prettyDate(member.getLast_login_time())
location = member.getLocation()
statement = member.getStatement()
skills = member.getSkills()
affiliations = member.getAffiliations()
background = member.getBackground()
favorites = member.getFavorites()
else:
# we're an old school member object, e.g. an admin user
id = member.id
fullname = member.fullname
# XXX TODO
membersince = '' #prettyDate(member.creation_date)
lastlogin = '' #prettyDate(member.last_login_time)
location = '' #member.location
statement = ''
skills = ''
affiliations = ''
background = ''
favorites = ''
url = ''
folder = self.membertool.getHomeFolder(id)
if folder:
url = folder.absolute_url()
portrait = member.getProperty('portrait', None)
portraiturl = portrait and portrait.absolute_url() or self.defaultPortraitURL
result.update(id=id,
url=url,
portraiturl=portraiturl,
fullname=fullname,
membersince=membersince,
lastlogin=lastlogin,
location=location,
statement=statement,
skills=skills,
affiliations=affiliations,
background=background,
favorites=favorites,
)
return result