def feedback(request): if request.method == 'POST': form = FeedbackForm(request.POST) if form.is_valid(): email = form.cleaned_data['email'] message = form.cleaned_data['message'] Feedback(email=email, message=message, type="gen", status=1).save() return HttpResponseRedirect(reverse('feedback_completed')) return render_to_response('feedback_completed.html', {}, request) else: form = FeedbackForm() return render_to_response('feedback.html', { 'form': form}, request)
def default_on_success(request, openid_response, message): """Дефолтный вид лля удачных запросов""" request.session['openid'] = from_openid_response(openid_response) return render_to_response('authopenid/success.html', { 'message': message, }, request )
def default_on_failure(request, message): """Дефолтный вид для неудачных запросов""" return render_to_response('authopenid/failure.html', { 'message': message, 'form': OpenidSigninForm() }, request )
def registration(request): openid = request.session.get('openid', None) next = request.GET.get(REDIRECT_FIELD_NAME, '') if not openid or openid is None: return HttpResponseRedirect(u"%s?%s" % (reverse('oid_login'), urllib.urlencode({REDIRECT_FIELD_NAME: urlquote(next)}))) pinitial = openid.sreg logger.debug(openid.sreg) logger.debug(openid.ax_resp) if openid.ax_resp: for k, v in openid.ax_resp.items(): if not pinitial.get(k): pinitial[k] = v logger.debug(u"Окончательные данные \n %s" % pinitial) initial = {} for k, v in pinitial.items(): initial[get_name(k)] = v if request.method == 'POST': form = OpenidRegisterForm(request.POST) else: form = OpenidRegisterForm(initial) if form.is_valid(): user = User.objects.create_user(form.cleaned_data['username'], form.cleaned_data['email']) user.backend = "authopenid.backends.OpenIDBackend" if user is not None: uassoc = UserAssociation(openid_url=str(openid), user_id=user.id) uassoc.save(send_email=False) cauth.login(request, user) return HttpResponseRedirect(urlquote(next)) return render_to_response('authopenid/registration.html', { 'form': form, REDIRECT_FIELD_NAME: next }, request )
def complete(request, on_success = None, on_failure = default_on_failure, return_to = None, **kwargs ): """Обработка openid_response от провадера """ redirect_to = request.GET.get(REDIRECT_FIELD_NAME, None) or getattr(settings, 'LOGIN_REDIRECT_URL', '/') consumer = Consumer(request.session, DjangoOpenIDStore()) args = dict(request.GET.items()) openid_response = consumer.complete(args, request.build_absolute_uri(return_to)) if openid_response.status == SUCCESS: return on_success(request, openid_response, redirect_to) elif openid_response.status == CANCEL: return on_failure(request, _(u'Вы отменили авторизации у своего OpenID провадера')) elif openid_response.status == FAILURE: return on_failure(request, openid_response.message) elif openid_response.status == SETUP_NEEDED: return on_failure(request, _('Setup needed')) else: assert False, _("Bad openid status: %s") % openid_response.status return render_to_response('authopenid/complete.html', { REDIRECT_FIELD_NAME: redirect_to }, request )
def page_not_found(request): return render_to_response('404.html', {'request_path': request.path}, request, response_class=HttpResponseNotFound)
def server_error(request): return render_to_response('500.html', {}, request, response_class=HttpResponseServerError)
redirect_to = request.POST.get(REDIRECT_FIELD_NAME, None) or getattr(settings, 'LOGIN_REDIRECT_URL', '/') if form.is_valid(): openid_url = form.cleaned_data['openid_url'] user = None try: user = UserAssociation.objects.get(openid_url=openid_url).user except UserAssociation.DoesNotExist, e: logger.debug(u'Пользователя с идентификатором %s не зарегистрировано' % openid_url) user = None return ask_openid(request, openid_url, reverse('oid_complete_signin'), redirect_to, user) return render_to_response('authopenid/signin.html', { 'form': form, 'next': request.GET.get(REDIRECT_FIELD_NAME, '') }, request ) def complete(request, on_success = None, on_failure = default_on_failure, return_to = None, **kwargs ): """Обработка openid_response от провадера """ redirect_to = request.GET.get(REDIRECT_FIELD_NAME, None) or getattr(settings, 'LOGIN_REDIRECT_URL', '/') consumer = Consumer(request.session, DjangoOpenIDStore()) args = dict(request.GET.items()) openid_response = consumer.complete(args, request.build_absolute_uri(return_to)) if openid_response.status == SUCCESS: return on_success(request, openid_response, redirect_to)