Esempio n. 1
0
 def get_user_groups(self, user):
     """
     Return all group memberships for one user.
     """
     key = make_key('groups', user.pk)
     groups = cache.get(key)
     if groups is None:
         groups = self.filter(members=user).order_by('-date_joined')
         cache.set(key, groups)
     return groups
Esempio n. 2
0
 def unviewed_requests(self, user):
     """
     Return all unviewed membership requests.
     """
     key = make_key('unviewed_requests', user.pk)
     unviewed_requests = cache.get(key)
     if unviewed_requests is None:
         unviewed_requests = self.filter(Q(viewed__isnull=True) | Q(viewed=False), from_user=user)
         cache.set(key, unviewed_requests)
     return unviewed_requests
Esempio n. 3
0
 def requests(self, user):
     """
     Return all membership requests.
     """
     key = make_key('requests', user.pk)
     requests = cache.get(key)
     if requests is None:
         requests = self.filter(from_user=user)
         cache.set(key, requests)
     return requests
Esempio n. 4
0
 def rejected_requests(self, user):
     """
     Return all rejected membership requests.
     """
     key = make_key('rejected_requests', user.pk)
     rejected_requests = cache.get(key)
     if rejected_requests is None:
         rejected_requests = self.filter(Q(rejected__isnull=False) | Q(rejected=True), from_user=user)
         cache.set(key, rejected_requests)
     return rejected_requests
Esempio n. 5
0
 def is_member(self, user, group):
     """
     Check if user is a group member.
     """
     if user.is_authenticated() and isinstance(group, self.model.__class__):
         key = make_key('members', group.pk)
         members = cache.get(key)
         if members is not None and user in members:
             return True
         else:
             try:
                 member = self.get(member=user, group=group)
                 return True
             except self.model.DoesNotExist:
                 return False
     return False