activation_required

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
def activation_required(login='login', activation='activation'):
    """
    Redirect user to:
    - login page if not authenticated
    - activation page if not activated

    examples:

    @activation_required('login-page', 'activation-page')
    def something(..):
        pass
    """
    def decorator(func):
        def wrapper(request, *args, **kw):
            if not request.user.is_authenticated():
                return HttpResponseRedirect(reverse(login))
            elif not request.user.is_active:
                return HttpResponseRedirect(reverse(activation))
            return func(request, *args, **kw)
        return wrapper
    return decorator

Comments

(Forgotten your password?)

You may use Markdown syntax here, but raw HTML will be removed.