From 0381c7577e3f9119e90becae34973bccf2528f5b Mon Sep 17 00:00:00 2001 From: helmutm Date: Mon, 8 Dec 2008 18:50:42 +0000 Subject: [PATCH] get principal title if person not present git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@3054 fd906abe-77d9-0310-91a1-e0d9ade77398 --- organize/configure.zcml | 3 +-- organize/tracking/browser.py | 13 +++++++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/organize/configure.zcml b/organize/configure.zcml index 973f7e6..de61d1f 100644 --- a/organize/configure.zcml +++ b/organize/configure.zcml @@ -59,8 +59,7 @@ for="loops.interfaces.ILoopsObject zope.publisher.interfaces.browser.IBrowserRequest" factory="loops.organize.memberinfo.MemberInfoProvider" - permission="zope.Public" - /> + permission="zope.Public" /> diff --git a/organize/tracking/browser.py b/organize/tracking/browser.py index 3e31d46..9ebbbad 100644 --- a/organize/tracking/browser.py +++ b/organize/tracking/browser.py @@ -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 - return uid + 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):