cms.cache.permissions: 20 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/cms/cache/permissions.py

Stats: 0 executed, 17 missed, 3 excluded, 29 ignored

  1. # -*- coding: utf-8 -*-
  2. from django.conf import settings
  3. from django.core.cache import cache
  4. from django.contrib.auth.models import User
  5. PERMISSION_KEYS = [
  6. 'can_change', 'can_add', 'can_delete',
  7. 'can_change_advanced_settings', 'can_publish',
  8. 'can_change_permissions', 'can_move_page',
  9. 'can_moderate', 'can_view']
  10. def get_cache_key(user, key):
  11. return "%s:permission:%s:%s" % (
  12. settings.CMS_CACHE_PREFIX, user.username, key)
  13. def get_permission_cache(user, key):
  14. """
  15. Helper for reading values from cache
  16. """
  17. return cache.get(get_cache_key(user, key))
  18. def set_permission_cache(user, key, value):
  19. """
  20. Helper method for storing values in cache. Stores used keys so
  21. all of them can be cleaned when clean_permission_cache gets called.
  22. """
  23. # store this key, so we can clean it when required
  24. cache_key = get_cache_key(user, key)
  25. cache.set(cache_key, value, settings.CMS_CACHE_DURATIONS['permissions'])
  26. def clear_user_permission_cache(user):
  27. """
  28. Cleans permission cache for given user.
  29. """
  30. for key in PERMISSION_KEYS:
  31. cache.delete(get_cache_key(user, key))
  32. def clear_permission_cache():
  33. users = User.objects.filter(is_active=True)
  34. for user in users:
  35. for key in PERMISSION_KEYS:
  36. cache_key = get_cache_key(user, key)
  37. cache.delete(cache_key)