useracl.py 591 B

1234567891011121314151617
  1. from django.core.cache import cache
  2. from . import buildacl
  3. def get_user_acl(user, cache_versions):
  4. cache_name = 'acl_%s_%s' % (user.acl_key, cache_versions["acl"])
  5. user_acl = cache.get(cache_name)
  6. if user_acl is None:
  7. user_acl = buildacl.build_acl(user.get_roles())
  8. cache.set(cache_name, user_acl)
  9. user_acl["user_id"] = user.id
  10. user_acl["is_authenticated"] = bool(user.is_authenticated)
  11. user_acl["is_anonymous"] = bool(user.is_anonymous)
  12. user_acl["is_staff"] = user.is_staff
  13. user_acl["is_superuser"] = user.is_superuser
  14. return user_acl