get principal title if person not present

git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@3054 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
helmutm 2008-12-08 18:50:42 +00:00
parent 4729f0ef5c
commit 0381c7577e
2 changed files with 12 additions and 4 deletions

View file

@ -59,8 +59,7 @@
for="loops.interfaces.ILoopsObject
zope.publisher.interfaces.browser.IBrowserRequest"
factory="loops.organize.memberinfo.MemberInfoProvider"
permission="zope.Public"
/>
permission="zope.Public" />
<zope:adapter factory="loops.organize.setup.SetupManager"
name="organize" />

View file

@ -22,6 +22,8 @@ View class(es) for change tracks.
$Id$
"""
from zope import component
from zope.app.security.interfaces import IAuthentication, PrincipalLookupError
from zope.cachedescriptors.property import Lazy
from zope.traversing.browser import absoluteURL
from zope.traversing.api import getName
@ -57,13 +59,20 @@ class BaseTrackView(TrackView):
obj = util.getObjectForUid(uid)
if obj is not None:
return obj
try:
return self.authentication.getPrincipal(uid) or uid
except PrincipalLookupError:
return uid
@Lazy
def authentication(self):
return component.getUtility(IAuthentication)
@Lazy
def userTitle(self):
if isinstance(self.user, basestring):
return self.user
return getattr(self.user, 'title', getName(self.user))
return self.user.title
@Lazy
def userUrl(self):