summaryrefslogtreecommitdiffstats
path: root/utils/decorators.py
diff options
context:
space:
mode:
authorAdolfo Fitoria <fitoria@fitoria-laptop.(none)>2009-12-15 16:57:37 -0600
committerAdolfo Fitoria <fitoria@fitoria-laptop.(none)>2009-12-15 16:57:37 -0600
commit9d1fb9890b97beb55461ca34f9757bc685461130 (patch)
tree1f8f0552ba6f4ca092aaa5a5347f0ad07433f1de /utils/decorators.py
parentebb0f636ae8f7db4e7a2e7470e449af3d96b15c0 (diff)
parent82d35490db90878f013523c4d1a5ec3af2df8b23 (diff)
downloadaskbot-9d1fb9890b97beb55461ca34f9757bc685461130.tar.gz
askbot-9d1fb9890b97beb55461ca34f9757bc685461130.tar.bz2
askbot-9d1fb9890b97beb55461ca34f9757bc685461130.zip
Merge branch 'master' of git://github.com/evgenyfadeev/CNPROG into evgenyfadeev/master
Conflicts: INSTALL LICENSE TODO cnprog.wsgi context.py development.log forum/feed.py forum/forms.py forum/management/commands/send_email_alerts.py forum/managers.py forum/models.py forum/templatetags/extra_filters.py forum/templatetags/extra_tags.py forum/urls.py forum/views.py locale/en/LC_MESSAGES/django.mo locale/en/LC_MESSAGES/django.po middleware/__init__.py middleware/anon_user.py settings.py settings_local.py.dist templates/about.html templates/authopenid/complete.html templates/authopenid/external_legacy_login_info.html templates/base.html templates/base_content.html templates/content/js/com.cnprog.admin.js templates/content/js/com.cnprog.i18n.js templates/content/js/com.cnprog.post.js templates/content/js/com.cnprog.utils.js templates/content/js/wmd/wmd.js templates/content/style/style.css templates/question.html templates/questions.html templates/unanswered.html templates/user_email_subscriptions.html templates/user_reputation.html templates/user_stats.html templates/user_votes.html
Diffstat (limited to 'utils/decorators.py')
-rw-r--r--utils/decorators.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/utils/decorators.py b/utils/decorators.py
new file mode 100644
index 00000000..e4e7acb3
--- /dev/null
+++ b/utils/decorators.py
@@ -0,0 +1,25 @@
+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
+