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 for="loops.interfaces.ILoopsObject
zope.publisher.interfaces.browser.IBrowserRequest" zope.publisher.interfaces.browser.IBrowserRequest"
factory="loops.organize.memberinfo.MemberInfoProvider" factory="loops.organize.memberinfo.MemberInfoProvider"
permission="zope.Public" permission="zope.Public" />
/>
<zope:adapter factory="loops.organize.setup.SetupManager" <zope:adapter factory="loops.organize.setup.SetupManager"
name="organize" /> name="organize" />

View file

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