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
