def flash_login_required(template): """ Decorator to recognized a user by its session when using SWFUpload and its cookie plugin. """ def decorator(view_func): def newfn(request, *args, **kwargs): 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 session = get_object_or_404(Session, session_key=request.POST.get('sessionid')) session_data = session.get_decoded() user_id = session_data['_auth_user_id'] request.user = get_object_or_404(User, pk = user_id) # you can fill default value in context dict # it will be injected to the template after context = {} context['profile'] = request.user.get_profile() view_func(request, context, **kwargs) if context.has_key('redirect'): return HttpResponseRedirect(context['redirect']) return render_to_response(template, context, RequestContext(request)) return newfn return decorator # Example in a view #from common.decorators import flash_login_required # #@flash_login_required('clip/clip_uploaded.html') #def clip_upload_item(request, context): # context['key'] = 'value'