Example #1
0
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})
Example #2
0
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))
Example #3
0
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))