Project

General

Profile

« Previous | Next » 

Revision fd9769d7

Added by Mikaël Ates over 12 years ago

authorization: add decorators to restrict view access.

View differences:

calebasse/decorators.py
1
from django.contrib.auth.decorators import login_required
2
from django.http import HttpResponseRedirect
3
from functools import wraps
4

  
5
from utils import is_super_user, is_validator
6

  
7
auth_url = '/accounts/login/'
8

  
9

  
10
'''
11
''''''
12
    Decorators to protect views
13
''''''
14
'''
15

  
16
def super_user_only(view_func):
17
    def _wrapped_view(request, *args, **kwargs):
18
        if not is_super_user(request.user):
19
            return HttpResponseRedirect(auth_url)
20
        return view_func(request, *args, **kwargs)
21
    return login_required(wraps(view_func)(_wrapped_view))
22

  
23
def validator_only(view_func):
24
    def _wrapped_view(request, *args, **kwargs):
25
        if not is_validator(request.user):
26
            return HttpResponseRedirect(auth_url)
27
        return view_func(request, *args, **kwargs)
28
    return login_required(wraps(view_func)(_wrapped_view))

Also available in: Unified diff