views: add a get_related_users function to get and cache user linked to the current session

This commit is contained in:
Benjamin Dauvergne 2013-11-22 14:52:32 +01:00
parent 9cd7d79131
commit bdc61cc169
1 changed files with 13 additions and 0 deletions

View File

@ -533,6 +533,19 @@ class ExtraContextMixin(object):
context.update(self.extra_ctx)
return context
def get_related_users(request):
'''Compute the list of users for which we can see the mailboxes, and cache
it in the session.
'''
if 'related_users' not in request.session:
users = [request.user]
delegations = user.delegations_by.select_related('by')
if delegations:
users.extend(delegation.by for delegation in delegations)
request.session['related_users'] = users
return request.session['realted_users']
class MailboxQuerysetMixin(object):
def get_queryset(self):
qs = super(MailboxQuerysetMixin, self).get_queryset()