From 234a1840c5966c99fa7a67dd36a87e2c9636593f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20OUDOT?= Date: Tue, 19 Jun 2018 20:04:04 +0200 Subject: [PATCH] Improve OIDC consents screen (#1431) --- .../lib/Lemonldap/NG/Portal/Main/Display.pm | 34 +++++++++++++------ .../site/templates/bootstrap/oidcConsents.tpl | 11 ++++-- 2 files changed, 31 insertions(+), 14 deletions(-) diff --git a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Main/Display.pm b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Main/Display.pm index 47037c467..46e6fc5ad 100644 --- a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Main/Display.pm +++ b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Main/Display.pm @@ -487,7 +487,21 @@ sub mkOidcConsent { if ( $self->conf->{oidcRPMetaDataOptions} ) { foreach my $oidc ( keys %{ $self->conf->{oidcRPMetaDataOptions} } ) { - $self->conf->{oidcRPMetaDataOptions}->{$oidc}->{oidcRPMetaDataOptionsDisplayName} ||= $oidc; + $self->conf->{oidcRPMetaDataOptions}->{$oidc} + ->{oidcRPMetaDataOptionsDisplayName} ||= $oidc; + } + } + + my $consents = {}; + + foreach ( keys %$session ) { + if ( $_ =~ /_oidc_consent_time_(.+)$/ ) { + $consents->{$1}->{time} = $session->{ "_oidc_consent_time_" . $1 }; + $consents->{$1}->{scope} = + $session->{ "_oidc_consent_scope_" . $1 }; + $consents->{$1}->{displayName} = + $self->conf->{oidcRPMetaDataOptions}->{$1} + ->{oidcRPMetaDataOptionsDisplayName}; } } @@ -496,17 +510,15 @@ sub mkOidcConsent { params => { partners => [ map { - $self->conf->{oidcRPMetaDataOptions} - and $self->conf->{oidcRPMetaDataOptions}->{$_} - ? { - name => $_, - displayName => - $self->conf->{oidcRPMetaDataOptions}->{$_}->{oidcRPMetaDataOptionsDisplayName}, - } - : () - } ( split /,/, $session->{_oidcConnectedRP} ) + { + name => $_, + time => $consents->{$_}->{time}, + scope => $consents->{$_}->{scope}, + displayName => $consents->{$_}->{displayName} + } + } ( sort keys %$consents ) ], - consents => $session->{_oidcConnectedRP}, + consents => join( ",", keys %$consents ), } ); } diff --git a/lemonldap-ng-portal/site/templates/bootstrap/oidcConsents.tpl b/lemonldap-ng-portal/site/templates/bootstrap/oidcConsents.tpl index 6d786a0a4..9304cceb4 100644 --- a/lemonldap-ng-portal/site/templates/bootstrap/oidcConsents.tpl +++ b/lemonldap-ng-portal/site/templates/bootstrap/oidcConsents.tpl @@ -1,14 +1,19 @@ - + + + + "> - + + +
ServiceDateScopeAction
- " class="oidcConsent link nodecor text-danger glyphicon glyphicon-minus-sign"> + ">" title="delete" class="oidcConsent link nodecor text-danger glyphicon glyphicon-minus-sign">