diff --git a/ox/django/decorators.py b/ox/django/decorators.py index 26ec8a8..84e5faf 100644 --- a/ox/django/decorators.py +++ b/ox/django/decorators.py @@ -19,3 +19,14 @@ def login_required_json(function=None): return render_to_json_response({'status': {'code': 401, 'text': 'login required'}}) return wraps(function)(_wrapped_view) +def admin_required_json(function=None): + """ + Decorator for views that checks that the user is logged in + return json error if not logged in. + """ + + def _wrapped_view(request, *args, **kwargs): + if request.user.is_authenticated() and request.user.get_profile().get_level() == 'admin': + return function(request, *args, **kwargs) + return render_to_json_response({'status': {'code': 403, 'text': 'permission denied'}}) + return wraps(function)(_wrapped_view)