Esempio n. 1
0
def callback(request, backend_name):
    try:
        workflow = get_workflow(request)
        if workflow.backend_name != backend_name:
            raise AkamaruError("Workflow")
    except AkamaruError:
        traceback.print_exc(file=sys.stdout)
        if AKAMARU_ILLEGAL_STATE_REDIRECT in settings:
            akamaru_illegal_state_redirect = settings_getattr(AKAMARU_ILLEGAL_STATE_REDIRECT)
            return HttpResponseRedirect(akamaru_illegal_state_redirect)
        return HttpResponseRedirect('/')

    request.session.modified = True
    return workflow.authenticate(**{'request': request})
Esempio n. 2
0
def resolve(request):
    def _extract(d, keys):
        return dict((k, d[k]) for k in keys if k in d)

    workflow = get_workflow(request)

    if not workflow.is_authenticated():
        return redirect("/")

    if request.user.is_authenticated():
        workflow.associate_user(request, request.user)
        return login_ok_redirect()

    create_user_form = CreateUserForm(request.POST or None, initial=workflow.get_session().me())
    login_form = AuthenticationForm(request, request.POST or None)

    if create_user_form.is_valid():
        workflow.create_user(
            request,
            **(_extract(create_user_form.cleaned_data, [
                'username',
                'password',
                'first_name',
                'last_name',
                'email'])))
        return login_ok_redirect()
    
    elif login_form.is_valid():
        user = authenticate(username=login_form.cleaned_data['username'], password=login_form.cleaned_data['password'])
        if user and user.is_active:
            workflow.associate_user(request, user)
            login(request, user)
            return login_ok_redirect()
    
    else:
        request.session.set_test_cookie()

    return render(request, "resolve/resolve.html", dict(create_user_form=create_user_form, login_form=login_form))
Esempio n. 3
0
def profile(request):
    workflow = get_workflow(request)
    session = workflow.get_session()
    return render(request, "profile.html", {'user': request.user, 'session': session})