Ejemplo n.º 1
0
def application_index(request):
    if not settings.ALLOW_REGISTRATIONS:
        return render_to_response('applications/registrations_disabled.html', {}, context_instance=RequestContext(request))

    if request.method == 'POST':
        form = StartApplicationForm(request.POST)
        if form.is_valid():
            institute = form.cleaned_data['institute']
            app_type = form.cleaned_data['application_type']
            if app_type == 'U':
                if institute.saml_entityid:
                    return HttpResponseRedirect(build_shib_url(
                            request, reverse('kg_saml_new_userapplication'), institute.saml_entityid))
                else:
                    return HttpResponseRedirect(reverse('kg_new_userapplication') + '?institute=%s' % institute.id)
            elif app_type == 'P':
                if institute.saml_entityid:
                    return HttpResponseRedirect(build_shib_url(
                            request, reverse('kg_saml_new_projectapplication'), institute.saml_entityid))

                else:
                    return HttpResponseRedirect(reverse('kg_new_projectapplication') + '?institute=%s' % institute.id)
    else:
        form = StartApplicationForm()

    return render_to_response('applications/index.html', {'form': form}, context_instance=RequestContext(request))
Ejemplo n.º 2
0
def start_invite_application(request, token):
    try:
        application = Application.objects.get(
            secret_token=token,
            state__in=[Application.NEW, Application.OPEN],
            expires__gt=datetime.datetime.now())
    except Application.DoesNotExist:
        return render_to_response('applications/old_userapplication.html',
                                  {'help_email': settings.ACCOUNTS_EMAIL},
                                  context_instance=RequestContext(request))

    if request.method == 'POST':
        form = StartInviteApplicationForm(request.POST)
        if form.is_valid():
            institute = form.cleaned_data['institute']
            application.state = Application.OPEN
            application.save()
            if institute.saml_entityid:
                return HttpResponseRedirect(build_shib_url(
                        request, reverse('kg_saml_invited_userapplication', args=[application.secret_token]),
                        institute.saml_entityid))
            else:
                return HttpResponseRedirect(reverse('kg_invited_userapplication', args=[application.secret_token]) + '?institute=%s' % institute.id)
    else:
        form = StartInviteApplicationForm()

    return render_to_response('applications/start_invite.html', {'form': form}, context_instance=RequestContext(request))
Ejemplo n.º 3
0
 def wrap(request, *args, **kwargs):
     if 'HTTP_SHIB_SESSION_ID' in request.META and request.META['HTTP_SHIB_SESSION_ID']:
         attr, error = parse_attributes(request.META)
         if error:
             return render_to_response('shibboleth/attribute_error.html', 
                                       {'shib_attrs': attr}, 
                                       context_instance=RequestContext(request))
     else:
         return HttpResponseRedirect(build_shib_url(request, request.build_absolute_uri()))
     
     return f(request, *args, **kwargs)
Ejemplo n.º 4
0
def saml_login(request):

    redirect_to = request.REQUEST.get('next', '')
    if not redirect_to or ' ' in redirect_to:
        redirect_to = settings.LOGIN_REDIRECT_URL
    redirect_to = redirect_to
    if request.method == 'POST':
        form = SAMLInstituteForm(request.POST)
        if form.is_valid():
            institute = form.cleaned_data['institute']
            return HttpResponseRedirect(build_shib_url(request, redirect_to, institute.saml_entityid))
    else:
        form = SAMLInstituteForm()

    return render_to_response('saml_login.html', {'samlform': form}, context_instance=RequestContext(request))