from django.http import HttpResponse, HttpResponseForbidden, Http404 from django.utils import simplejson def ajax_login_required(view_func): def wrap(request,*args,**kwargs): if request.user.is_authenticated(): return view_func(request,*args,**kwargs) else: json = simplejson.dumps({'login_required':True}) return HttpResponseForbidden(json,mimetype='application/json') return wrap def ajax_method(view_func): def wrap(request,*args,**kwargs): if not request.is_ajax(): raise Http404 retval = view_func(request,*args,**kwargs) if isinstance(retval, HttpResponse): retval.mimetype = 'application/json' return retval else: json = simplejson.dumps(retval) return HttpResponse(json,mimetype='application/json') return wrap