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))
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))
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)
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))