Пример #1
0
def custom_login_action(request, su_user):
    custom_login_action = getattr(settings, 'SU_CUSTOM_LOGIN_ACTION', None)
    if custom_login_action:
        if not callable(custom_login_action):
            custom_login_action = import_function(custom_login_action)
        custom_login_action(request, su_user)
        return True
    return False
Пример #2
0
def custom_login_action(request, su_user):
    custom_login_action = getattr(settings, 'SU_CUSTOM_LOGIN_ACTION', None)
    if custom_login_action:
        if not callable(custom_login_action):
            custom_login_action = import_function(custom_login_action)
        custom_login_action(request, su_user)
        return True
    return False
Пример #3
0
def su_exit(request):
    exit_users_pk = request.session.get("exit_users_pk", default=[])
    if not exit_users_pk:
        return HttpResponseBadRequest(("This session was not su'ed into."
                                       "Cannot exit."))
    staff_user = User.objects.get(pk=exit_users_pk[-1][0])
    staff_user.backend = exit_users_pk[-1][1]
    if not custom_login_action(request, staff_user):
        login(request, staff_user)
    request.session["exit_users_pk"] = exit_users_pk[:-1]
    return HttpResponseRedirect(getattr(settings, "SU_REDIRECT_EXIT", "/"))
Пример #4
0
def su_exit(request):
    exit_users_pk = request.session.get("exit_users_pk", default=[])
    if not exit_users_pk:
        return HttpResponseBadRequest(("This session was not su'ed into."
                                       "Cannot exit."))
    staff_user = User.objects.get(pk=exit_users_pk[-1][0])
    staff_user.backend = exit_users_pk[-1][1]
    if not custom_login_action(request, staff_user):
        login(request, staff_user)
    request.session["exit_users_pk"] = exit_users_pk[:-1]
    return HttpResponseRedirect(getattr(settings, "SU_REDIRECT_EXIT", "/"))
Пример #5
0
def login_as_user(request, user_id):
    su_user = authenticate(su=True, pk=user_id)

    if not su_user:
        raise Http404("User not found")

    exit_user_pk = (request.session[SESSION_KEY], request.session[BACKEND_SESSION_KEY])
    exit_users_pk = request.session.get("exit_users_pk", default=[])
    exit_users_pk.append(exit_user_pk)
    if not custom_login_action(request, su_user):
        login(request, su_user)
    request.session["exit_users_pk"] = exit_users_pk
    return HttpResponseRedirect(getattr(settings, "SU_REDIRECT_LOGIN", "/"))
Пример #6
0
def login_as_user(request, user_id):
    su_user = authenticate(su=True, pk=user_id)

    if not su_user:
        raise Http404("User not found")

    exit_user_pk = (request.session[SESSION_KEY],
                    request.session[BACKEND_SESSION_KEY])
    exit_users_pk = request.session.get("exit_users_pk", default=[])
    exit_users_pk.append(exit_user_pk)
    if not custom_login_action(request, su_user):
        login(request, su_user)
    request.session["exit_users_pk"] = exit_users_pk
    return HttpResponseRedirect(getattr(settings, "SU_REDIRECT_LOGIN", "/"))