From c622c87b4a2910d36727dab63dda93b1d3a77aa1 Mon Sep 17 00:00:00 2001 From: Guillaume Rousse <guillaume.rousse@renater.fr> Date: Thu, 24 May 2018 18:16:39 +0200 Subject: [PATCH] keep federation to allows getting back anytime --- lib/AccountManager/App.pm | 31 ++++++++++++++++++++--- templates/web/complete_challenge.tt2.html | 1 + templates/web/select_email.tt2.html | 1 + 3 files changed, 30 insertions(+), 3 deletions(-) diff --git a/lib/AccountManager/App.pm b/lib/AccountManager/App.pm index 9bf24e6..3440f93 100644 --- a/lib/AccountManager/App.pm +++ b/lib/AccountManager/App.pm @@ -407,7 +407,8 @@ sub req_select_email { $self->respond( template => 'select_email.tt2.html', data => { - sp => $sp, + federation => $federation, + sp => $sp, } ); } @@ -415,6 +416,29 @@ sub req_select_email { sub req_complete_challenge { my ($self) = @_; + my $federation = $self->{in}->{federation}; + + if (!$federation) { + $self->{logger}->error("Missing parameter: federation"); + $self->respond( + template => 'errors.tt2.html', + data => { + errors => [ "missing_federation" ] + } + ); + } + + my $file = $self->{configuration}->{federations}->{$federation}; + if (!$file) { + $self->{logger}->error("Incorrect parameter: federation"); + $self->respond( + template => 'errors.tt2.html', + data => { + errors => [ "invalid_federation" ] + } + ); + } + unless ($self->{in}->{entityid}) { $self->{logger}->error("Missing parameter entityid"); $self->respond( @@ -584,8 +608,9 @@ sub req_complete_challenge { $self->respond( template => 'complete_challenge.tt2.html', data => { - email => $self->{in}->{email}, - entityid => $self->{in}->{entityid}, + federation => $federation, + entityid => $self->{in}->{entityid}, + email => $self->{in}->{email}, } ); } diff --git a/templates/web/complete_challenge.tt2.html b/templates/web/complete_challenge.tt2.html index 2ff2529..adb2ff7 100644 --- a/templates/web/complete_challenge.tt2.html +++ b/templates/web/complete_challenge.tt2.html @@ -18,6 +18,7 @@ <label for="token">[% lh.maketext("Please provide the validation token here:") %]</label> <br/> <input name="token" value="" id="token" type="text" class="required error"/> + <input type="hidden" name="federation" value="[% federation %]"/> <input type="hidden" name="entityid" value="[% entityid %]"/> <input type="hidden" name="email" value="[% email %]"/> </div> diff --git a/templates/web/select_email.tt2.html b/templates/web/select_email.tt2.html index 2672807..010fd34 100644 --- a/templates/web/select_email.tt2.html +++ b/templates/web/select_email.tt2.html @@ -21,6 +21,7 @@ <br/> [% END %] <div class="callout primary">[% lh.maketext("Those email addresses have been extracted from your service metadata.") %]</div> + <input type="hidden" name="federation" value="[% federation %]"/> <input type="hidden" name="entityid" value="[% sp.entityid %]"/> [% ELSE %] <p> -- GitLab