@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