filer.server.views: 36 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/filer/server/views.py

Stats: 0 executed, 29 missed, 7 excluded, 15 ignored

  1. #-*- coding: utf-8 -*-
  2. from django.conf import settings
  3. from django.core.exceptions import PermissionDenied
  4. from django.http import Http404
  5. from easy_thumbnails.files import ThumbnailFile
  6. from filer import settings as filer_settings
  7. from filer.models import File
  8. from filer.utils.filer_easy_thumbnails import thumbnail_to_original_filename
  9. server = filer_settings.FILER_PRIVATEMEDIA_SERVER
  10. thumbnail_server = filer_settings.FILER_PRIVATEMEDIA_THUMBNAIL_SERVER
  11. def serve_protected_file(request, path):
  12. """
  13. Serve protected files to authenticated users with read permissions.
  14. """
  15. try:
  16. file_obj = File.objects.get(file=path, is_public=False)
  17. except File.DoesNotExist:
  18. raise Http404('File not found')
  19. if not file_obj.has_read_permission(request):
  20. if settings.DEBUG:
  21. raise PermissionDenied
  22. else:
  23. raise Http404('File not found')
  24. return server.serve(request, file_obj=file_obj.file, save_as=False)
  25. def serve_protected_thumbnail(request, path):
  26. """
  27. Serve protected thumbnails to authenticated users.
  28. If the user doesn't have read permissions, redirect to a static image.
  29. """
  30. source_path = thumbnail_to_original_filename(path)
  31. if not source_path:
  32. raise Http404('File not found')
  33. try:
  34. file_obj = File.objects.get(file=source_path, is_public=False)
  35. except File.DoesNotExist:
  36. raise Http404('File not found')
  37. if not file_obj.has_read_permission(request):
  38. if settings.DEBUG:
  39. raise PermissionDenied
  40. else:
  41. raise Http404('File not found')
  42. try:
  43. thumbnail = ThumbnailFile(name=path, storage=file_obj.file.thumbnail_storage)
  44. return thumbnail_server.serve(request, thumbnail, save_as=False)
  45. except Exception:
  46. raise Http404('File not found')