← Back to team overview

launchpad-reviewers team mailing list archive

Re: [Merge] lp:~cjwatson/launchpad/import-warnings into lp:launchpad

 


Diff comments:

> 
> === modified file 'lib/lp/soyuz/model/archivesubscriber.py'
> --- lib/lp/soyuz/model/archivesubscriber.py	2015-07-08 16:05:11 +0000
> +++ lib/lp/soyuz/model/archivesubscriber.py	2015-09-21 10:22:52 +0000
> @@ -204,7 +212,20 @@
>  
>      def getBySubscriberWithActiveToken(self, subscriber, archive=None):
>          """See `IArchiveSubscriberSet`."""
> -        return self._getBySubscriber(subscriber, archive, True, True)
> +        result = self._getBySubscriber(subscriber, archive, True, True)
> +
> +        def eager_load(rows):
> +            user = getUtility(ILaunchBag).user
> +            subscriptions = map(itemgetter(0), rows)
> +            precache_permission_for_objects(
> +                None, 'launchpad.View', subscriptions)
> +            archives = load_related(Archive, subscriptions, ['archive_id'])
> +            list(getUtility(IPersonSet).getPrecachedPersonsFromIDs(
> +                [archive.ownerID for archive in archives], need_validity=True))
> +            for archive in archives:
> +                get_property_cache(archive)._known_subscribers = [user]

In this case the only people who can see this view who aren't the subscriber are admins and they can see the archives anyway, but indeed it would be more correct to use the subscriber here.

I've moved the current-user-specific handling here and above back to browser code.  Please re-review?

> +
> +        return DecoratedResultSet(result, pre_iter_hook=eager_load)
>  
>      def getByArchive(self, archive, current_only=True):
>          """See `IArchiveSubscriberSet`."""


-- 
https://code.launchpad.net/~cjwatson/launchpad/import-warnings/+merge/271790
Your team Launchpad code reviewers is subscribed to branch lp:launchpad.


References