django.contrib.auth.context_processors: 24 total statements, 0.0% covered

Generated: Wed 2013-03-13 10:33 CET

Source file: /media/Envs/Envs/filer-gallery/lib/python2.7/site-packages/django/contrib/auth/context_processors.py

Stats: 0 executed, 23 missed, 1 excluded, 27 ignored

  1. # PermWrapper and PermLookupDict proxy the permissions system into objects that
  2. # the template system can understand.
  3. class PermLookupDict(object):
  4. def __init__(self, user, module_name):
  5. self.user, self.module_name = user, module_name
  6. def __repr__(self):
  7. return str(self.user.get_all_permissions())
  8. def __getitem__(self, perm_name):
  9. return self.user.has_perm("%s.%s" % (self.module_name, perm_name))
  10. def __iter__(self):
  11. # To fix 'item in perms.someapp' and __getitem__ iteraction we need to
  12. # define __iter__. See #18979 for details.
  13. raise TypeError("PermLookupDict is not iterable.")
  14. def __nonzero__(self):
  15. return self.user.has_module_perms(self.module_name)
  16. class PermWrapper(object):
  17. def __init__(self, user):
  18. self.user = user
  19. def __getitem__(self, module_name):
  20. return PermLookupDict(self.user, module_name)
  21. def __iter__(self):
  22. # I am large, I contain multitudes.
  23. raise TypeError("PermWrapper is not iterable.")
  24. def auth(request):
  25. """
  26. Returns context variables required by apps that use Django's authentication
  27. system.
  28. If there is no 'user' attribute in the request, uses AnonymousUser (from
  29. django.contrib.auth).
  30. """
  31. if hasattr(request, 'user'):
  32. user = request.user
  33. else:
  34. from django.contrib.auth.models import AnonymousUser
  35. user = AnonymousUser()
  36. return {
  37. 'user': user,
  38. 'perms': PermWrapper(user),
  39. }