def openid(request, **args): authed = request.user.is_authenticated() and request.user.is_staff if not authed: return HttpResponseForbidden() page = { 'robots': 'noindex', 'base_url': settings.BASE_URL, 'favicon': settings.FAVICON, 'themes': settings.THEMES, 'themes_more': True if len(settings.THEMES) > 1 else False, 'theme': common.get_theme(request), 'title': _('OpenID - Settings'), 'menu': 'openid', } openid_url = request.POST.get('openid_identifier', None) if openid_url: rs = gls_openid.start(request, openid_url) if 'res' in rs: return rs['res'] elif 'msg' in rs: page['msg'] = rs['msg'] elif request.GET.get('openid.mode', None): rs = gls_openid.finish(request) if 'identity_url' in rs: try: db = OpenId(user=request.user, identity=rs['identity_url']) db.save() return HttpResponseRedirect( urlresolvers.reverse('glifestream.usettings.views.openid')) except IntegrityError: pass elif 'msg' in rs: page['msg'] = rs['msg'] elif request.POST.get('delete', None): try: OpenId(user=request.user, id=int(request.POST.get('delete'))).delete() except: pass ids = OpenId.objects.filter(user=request.user).order_by('identity') return render_to_response('oid.html', {'page': page, 'authed': authed, 'is_secure': request.is_secure(), 'user': request.user, 'openids': ids})
def openid(request, template_name='openid.html', redirect_field_name=REDIRECT_FIELD_NAME): msg = None redirect_to = urlresolvers.reverse('index') if not redirect_to or '//' in redirect_to or ' ' in redirect_to: redirect_to = settings.BASE_URL + '/' if not gls_openid.openid: return HttpResponseRedirect(redirect_to) if request.method == 'POST': form = OpenIdForm(data=request.POST,) if form.is_valid(): if not form.cleaned_data['remember_me']: request.session.set_expiry(0) rs = gls_openid.start(request, form.cleaned_data['openid_identifier']) if 'res' in rs: return rs['res'] elif 'msg' in rs: msg = rs['msg'] else: msg = _('Invalid OpenID identifier') elif request.method == 'GET': if request.GET.get('openid.mode', None): rs = gls_openid.finish(request) if 'msg' in rs: msg = rs['msg'] elif 'identity_url' in rs: try: db = OpenId.objects.get(identity=rs['identity_url']) if db: user = db.user user.backend = 'django.contrib.auth.backends.ModelBackend' if user.is_active: from django.contrib.auth import login login(request, user) if request.session.test_cookie_worked(): request.session.delete_test_cookie() return HttpResponseRedirect(redirect_to) except OpenId.DoesNotExist: pass msg = _('OpenID account match error') form = OpenIdForm(request,) request.session.set_test_cookie() if Site._meta.installed: current_site = Site.objects.get_current() else: current_site = RequestSite(request) page = { 'robots': 'noindex,nofollow', 'favicon': settings.FAVICON, 'theme': common.get_theme(request), 'msg': msg, } return render_to_response(template_name, {'page': page, 'form': form, 'site': current_site, 'site_name': current_site.name, 'is_secure': request.is_secure(), redirect_field_name: redirect_to}, context_instance=RequestContext(request))
def openid(request, template_name='openid.html', redirect_field_name=REDIRECT_FIELD_NAME): msg = None redirect_to = urlresolvers.reverse('index') if not redirect_to or '//' in redirect_to or ' ' in redirect_to: redirect_to = settings.BASE_URL + '/' if not gls_openid.openid: return HttpResponseRedirect(redirect_to) if request.method == 'POST': form = OpenIdForm(data=request.POST, ) if form.is_valid(): if not form.cleaned_data['remember_me']: request.session.set_expiry(0) rs = gls_openid.start(request, form.cleaned_data['openid_identifier']) if 'res' in rs: return rs['res'] elif 'msg' in rs: msg = rs['msg'] else: msg = _('Invalid OpenID identifier') elif request.method == 'GET': if request.GET.get('openid.mode', None): rs = gls_openid.finish(request) if 'msg' in rs: msg = rs['msg'] elif 'identity_url' in rs: try: db = OpenId.objects.get(identity=rs['identity_url']) if db: user = db.user user.backend = 'django.contrib.auth.backends.ModelBackend' if user.is_active: from django.contrib.auth import login login(request, user) if request.session.test_cookie_worked(): request.session.delete_test_cookie() return HttpResponseRedirect(redirect_to) except OpenId.DoesNotExist: pass msg = _('OpenID account match error') form = OpenIdForm(request, ) request.session.set_test_cookie() if Site._meta.installed: current_site = Site.objects.get_current() else: current_site = RequestSite(request) page = { 'robots': 'noindex,nofollow', 'favicon': settings.FAVICON, 'theme': common.get_theme(request), 'msg': msg, } return render_to_response(template_name, { 'page': page, 'form': form, 'site': current_site, 'site_name': current_site.name, 'is_secure': request.is_secure(), redirect_field_name: redirect_to }, context_instance=RequestContext(request))