예제 #1
0
def login(request,
          template_name='emailauth/login.html',
          redirect_field_name=REDIRECT_FIELD_NAME):

    redirect_to = request.REQUEST.get(redirect_field_name, '')

    if request.method == 'POST':
        form = LoginForm(request.POST)
        if form.is_valid():
            from django.contrib.auth import login
            login(request, form.get_user())

            if request.get_host() == 'testserver':
                if not redirect_to or '//' in redirect_to or ' ' in redirect_to:
                    redirect_to = settings.LOGIN_REDIRECT_URL
                return HttpResponseRedirect(redirect_to)

            request.session.set_test_cookie()

            return HttpResponseRedirect(
                settings.LOGIN_URL + '?' +
                urlencode({
                    'testcookiesupport': '',
                    redirect_field_name: redirect_to,
                }))
    elif 'testcookiesupport' in request.GET:
        if request.session.test_cookie_worked():
            request.session.delete_test_cookie()
            if not redirect_to or '//' in redirect_to or ' ' in redirect_to:
                redirect_to = settings.LOGIN_REDIRECT_URL
            return HttpResponseRedirect(redirect_to)
        else:
            form = LoginForm()
            errorlist = forms.util.ErrorList()
            errorlist.append(
                _("Your Web browser doesn't appear to "
                  "have cookies enabled. Cookies are required for logging in.")
            )
            form._errors = forms.util.ErrorDict()
            form._errors[forms.forms.NON_FIELD_ERRORS] = errorlist
    else:
        form = LoginForm()

    if Site._meta.installed:
        current_site = Site.objects.get_current()
    else:
        current_site = RequestSite(request)

    return render_to_response(template_name, {
        'form': form,
        'redirect_field_name': redirect_field_name,
        'redirect_to': redirect_to,
        'site_name': current_site.name,
    },
                              context_instance=RequestContext(request))
예제 #2
0
def login(request, template_name='emailauth/login.html',
    redirect_field_name=REDIRECT_FIELD_NAME):

    redirect_to = request.REQUEST.get(redirect_field_name, '')

    if request.method == 'POST':
        form = LoginForm(request.POST)
        if form.is_valid():
            from django.contrib.auth import login
            login(request, form.get_user())

            if request.get_host() == 'testserver':
                if not redirect_to or '//' in redirect_to or ' ' in redirect_to:
                    redirect_to = settings.LOGIN_REDIRECT_URL
                return HttpResponseRedirect(redirect_to)

            request.session.set_test_cookie()

            return HttpResponseRedirect(settings.LOGIN_URL + '?' + urlencode({
                'testcookiesupport': '',
                redirect_field_name: redirect_to,
            }))
    elif 'testcookiesupport' in request.GET:
        if request.session.test_cookie_worked():
            request.session.delete_test_cookie()
            if not redirect_to or '//' in redirect_to or ' ' in redirect_to:
                redirect_to = settings.LOGIN_REDIRECT_URL
            return HttpResponseRedirect(redirect_to)
        else:
            form = LoginForm()
            errorlist = forms.util.ErrorList()
            errorlist.append(_("Your Web browser doesn't appear to "
                "have cookies enabled. Cookies are required for logging in."))
            form._errors = forms.util.ErrorDict()
            form._errors[forms.forms.NON_FIELD_ERRORS] = errorlist
    else:
        form = LoginForm()

    if Site._meta.installed:
        current_site = Site.objects.get_current()
    else:
        current_site = RequestSite(request)

    return render_to_response(template_name, {
            'form': form,
            'redirect_field_name': redirect_field_name,
            'redirect_to': redirect_to,
            'site_name': current_site.name,
        },
        context_instance=RequestContext(request))
예제 #3
0
def loginform(context):
    form = LoginForm()
    user = context['request'].user
    return locals()