Пример #1
0
def login_begin(request, template_name='openid/login.html',
                redirect_field_name=REDIRECT_FIELD_NAME):
    """Begin an OpenID login request, possibly asking for an identity URL."""
    redirect_to = request.REQUEST.get(redirect_field_name, '')

    # Get the OpenID URL to try.  First see if we've been configured
    # to use a fixed server URL.
    openid_url = getattr(settings, 'OPENID_SSO_SERVER_URL', None)

    if openid_url is None:
        if request.POST:
            login_form = OpenIDLoginForm(data=request.POST)
            if login_form.is_valid():
                openid_url = login_form.cleaned_data['openid_identifier']
        else:
            login_form = OpenIDLoginForm()

        # Invalid or no form data:
        if openid_url is None:
            return render_to_response(template_name, {
                    'form': login_form,
                    redirect_field_name: redirect_to
                    }, context_instance=RequestContext(request))

    error = None
    consumer = make_consumer(request)
    try:
        openid_request = consumer.begin(openid_url)
    except DiscoveryFailure, exc:
        return render_failure(
            request, "OpenID discovery error: %s" % (str(exc),), status=500)
Пример #2
0
def homepage(request):
    if request.method == 'POST': # If the form has been submitted...
        form = OpenIDLoginForm(request.POST) # A form bound to the POST data
        if form.is_valid(): # All validation rules pass
            # Process the data in form.cleaned_data
            # ...
            return OpenIDProcess.login_begin(request, template_name='openid/login.html',
                login_complete_view='openid-complete',
                form_class=OpenIDLoginForm,
                render_failure=OpenIDProcess.default_render_failure,
                redirect_field_name=REDIRECT_FIELD_NAME)
            
    else:
        form = OpenIDLoginForm() # An unbound form
        
    return render_to_response('homepage.html',
                              {'form': form},
                              context_instance=RequestContext(request))
Пример #3
0
def accounts_login(request,
                   template_name='accounts/login.html',
                   *args,
                   **kwargs):
    # create both the OpenID and django.contrib.auth login form
    openid_form = OpenIDLoginForm()
    # change the label text to something nicer
    openid_form.fields['openid_identifier'].label = _("OpenID")
    if request.method == "POST":
        auth_form = AuthenticationForm(data=request.POST)
        # If is_valid() returns true we can be 99% certain there won't be an error when loggging in
        if auth_form.is_valid():
            # Pass control to django_auth and return the result
            return django.contrib.auth.views.login(request,
                                                   auth_form.get_user())
    else:
        auth_form = AuthenticationForm()

    return render_to_response(template_name, {
        'auth_form': auth_form,
        'openid_form': openid_form
    },
                              context_instance=RequestContext(request))
Пример #4
0
    def openid_form(context):
        """Tag for rendering openid sign in form and return it in place"""
        context.update({'form': OpenIDLoginForm()})

        return context