--- /dev/null
+# coding: utf-8
+
+from django.contrib.sessions.models import Session
+from django.shortcuts import get_object_or_404, render_to_response
+from django.contrib.auth.models import User
+from django.template import RequestContext
+from django.conf import settings
+
+
+def flash_login_required(function):
+ """
+ Decorator to recognize a user by its session.
+ Used for Flash-Uploading.
+ """
+
+ def decorator(request, *args, **kwargs):
+ try:
+ engine = __import__(settings.SESSION_ENGINE, {}, {}, [''])
+ except:
+ import django.contrib.sessions.backends.db
+ engine = django.contrib.sessions.backends.db
+ session_data = engine.SessionStore(request.POST.get('session_key'))
+ user_id = session_data['_auth_user_id']
+ #will return 404 if the session ID does not resolve to a valid user
+ request.user = get_object_or_404(User, pk=user_id)
+ return function(request, *args, **kwargs)
+ return decorator
+
+