Use user skin in loadTemplate (Fixes: #1828)

This commit is contained in:
Xavier 2019-06-28 13:40:56 +02:00
parent c411406886
commit c921c295ed
20 changed files with 54 additions and 33 deletions

View File

@ -86,6 +86,7 @@ sub run {
# Use HTML template # Use HTML template
$body = $self->loadTemplate( $body = $self->loadTemplate(
$req,
'mail_2fcode', 'mail_2fcode',
filter => $tr, filter => $tr,
params => \%tplPrms params => \%tplPrms

View File

@ -114,6 +114,7 @@ sub authenticate {
my $remainingTime = $_pwdExpire - $timestamp; my $remainingTime = $_pwdExpire - $timestamp;
$req->info( $req->info(
$self->loadTemplate( $self->loadTemplate(
$req,
'pwdWillExpire', 'pwdWillExpire',
params => { params => {
time => join( time => join(

View File

@ -308,7 +308,8 @@ sub run {
$req->info( $req->info(
$self->loadTemplate( $self->loadTemplate(
'casBack2Url', params => { url => $logout_url } $req, 'casBack2Url',
params => { url => $logout_url }
) )
); );
$req->data->{activeTimer} = 0; $req->data->{activeTimer} = 0;

View File

@ -231,6 +231,7 @@ sub _openIDResponse {
# TODO # TODO
$req->info( $req->info(
$self->loadTemplate( $self->loadTemplate(
$req,
'simpleInfo', 'simpleInfo',
params => { trspan => "openidExchange,$data->{trust_root}" } params => { trspan => "openidExchange,$data->{trust_root}" }
) )

View File

@ -556,6 +556,7 @@ sub run {
} }
$req->info( $req->info(
$self->loadTemplate( $self->loadTemplate(
$req,
'oidcGiveConsent', 'oidcGiveConsent',
params => { params => {
displayName => $display_name, displayName => $display_name,
@ -947,7 +948,7 @@ sub run {
: PE_OK; : PE_OK;
} }
$req->info( $self->loadTemplate('oidcLogout') ); $req->info( $self->loadTemplate( $req, 'oidcLogout' ) );
$req->data->{activeTimer} = 0; $req->data->{activeTimer} = 0;
return PE_CONFIRM; return PE_CONFIRM;
} }

View File

@ -917,8 +917,10 @@ sub run {
. ' width="0" height="0" frameborder="0"></iframe>'; . ' width="0" height="0" frameborder="0"></iframe>';
$req->info( $req->info(
$self->loadTemplate( 'simpleInfo', $self->loadTemplate(
params => { trspan => 'updateCdc' } ) $req, 'simpleInfo',
params => { trspan => 'updateCdc' }
)
. $cdc_iframe . $cdc_iframe
); );
} }

View File

@ -209,6 +209,7 @@ sub userBind {
if ( $resp->grace_authentications_remaining ) { if ( $resp->grace_authentications_remaining ) {
$req->info( $req->info(
$self->{portal}->loadTemplate( $self->{portal}->loadTemplate(
$req,
'ldapPpGrace', 'ldapPpGrace',
params => { params => {
number => $resp->grace_authentications_remaining number => $resp->grace_authentications_remaining
@ -220,6 +221,7 @@ sub userBind {
if ( $resp->time_before_expiration ) { if ( $resp->time_before_expiration ) {
$req->info( $req->info(
$self->{portal}->loadTemplate( $self->{portal}->loadTemplate(
$req,
'simpleInfo', 'simpleInfo',
params => { params => {
trspan => 'authRemaining,' trspan => 'authRemaining,'

View File

@ -62,7 +62,7 @@ sub checkForNotifications {
# Go to next file if no notification found # Go to next file if no notification found
next unless $j; next unless $j;
$i++; $i++;
$form .= $self->toForm(@res); $form .= $self->toForm( $req, @res );
} }
# Stop here if nothing to display # Stop here if nothing to display
@ -192,7 +192,7 @@ sub getNotifBack {
} }
sub toForm { sub toForm {
my ( $self, @notifs ) = @_; my ( $self, $req, @notifs ) = @_;
my $i = 0; my $i = 0;
@notifs = map { @notifs = map {
$i++; $i++;
@ -205,7 +205,7 @@ sub toForm {
$_->{id} = "1x$i"; $_->{id} = "1x$i";
$_; $_;
} @notifs; } @notifs;
return $self->loadTemplate( 'notifinclude', return $self->loadTemplate( $req, 'notifinclude',
params => { notifications => \@notifs } ); params => { notifications => \@notifs } );
} }

View File

@ -73,6 +73,7 @@ sub sregHook {
} }
} }
$req->data->{_openIdTrustExtMsg} .= $self->loadTemplate( $req->data->{_openIdTrustExtMsg} .= $self->loadTemplate(
$req,
'openIdPol', 'openIdPol',
params => { params => {
policies => \@pol, policies => \@pol,
@ -96,7 +97,8 @@ sub sregHook {
$req->info( $req->info(
$self->loadTemplate( $self->loadTemplate(
'simpleInfo', params => { trspan => "openidRpns,$k" } $req, 'simpleInfo',
params => { trspan => "openidRpns,$k" }
) )
); );
return ( 0, {} ); return ( 0, {} );
@ -198,6 +200,7 @@ sub sregHook {
} }
$req->data->{_openIdTrustExtMsg} .= $self->loadTemplate( $req->data->{_openIdTrustExtMsg} .= $self->loadTemplate(
$req,
'openIdTrust', 'openIdTrust',
params => { params => {
required => \@mreq, required => \@mreq,

View File

@ -2547,6 +2547,7 @@ sub sendLogoutRequestToProvider {
# Create iFrame # Create iFrame
$info .= $self->loadTemplate( $info .= $self->loadTemplate(
$req,
'samlSpLogout', 'samlSpLogout',
params => { params => {
url => $slo_url, url => $slo_url,
@ -2582,6 +2583,7 @@ sub sendLogoutRequestToProvider {
# Create iFrame # Create iFrame
$info .= $self->loadTemplate( $info .= $self->loadTemplate(
$req,
'samlSpLogout', 'samlSpLogout',
params => { params => {
url => $slo_url, url => $slo_url,
@ -2620,6 +2622,7 @@ sub sendLogoutRequestToProvider {
# Display information to the user # Display information to the user
$info .= $self->loadTemplate( $info .= $self->loadTemplate(
$req,
'samlSpSoapLogout', 'samlSpSoapLogout',
params => { params => {
imgUrl => $slo_url, imgUrl => $slo_url,
@ -2718,7 +2721,7 @@ sub sendLogoutRequestToProviders {
# Print some information to the user. # Print some information to the user.
$req->info( $req->info(
$self->loadTemplate( $self->loadTemplate(
'samlSpsLogout', params => { content => $content } $req, 'samlSpsLogout', params => { content => $content }
) )
) if $providersCount; ) if $providersCount;

View File

@ -527,12 +527,13 @@ sub getSkin {
# @param $displaError To display "Error" column # @param $displaError To display "Error" column
# @return HTML string # @return HTML string
sub mkSessionArray { sub mkSessionArray {
my ( $self, $sessions, $title, $displayUser, $displayError ) = @_; my ( $self, $req, $sessions, $title, $displayUser, $displayError ) = @_;
return "" unless ( ref $sessions eq "ARRAY" and @$sessions ); return "" unless ( ref $sessions eq "ARRAY" and @$sessions );
my @fields = sort keys %{ $self->conf->{sessionDataToRemember} }; my @fields = sort keys %{ $self->conf->{sessionDataToRemember} };
return $self->loadTemplate( return $self->loadTemplate(
$req,
'sessionArray', 'sessionArray',
params => { params => {
title => $title, title => $title,
@ -560,7 +561,7 @@ sub mkSessionArray {
} }
sub mkOidcConsent { sub mkOidcConsent {
my ( $self, $session ) = @_; my ( $self, $req, $session ) = @_;
if ( defined( $self->conf->{oidcRPMetaDataOptions} ) if ( defined( $self->conf->{oidcRPMetaDataOptions} )
and ref( $self->conf->{oidcRPMetaDataOptions} ) ) and ref( $self->conf->{oidcRPMetaDataOptions} ) )
@ -603,6 +604,7 @@ sub mkOidcConsent {
# Display existing oidcConsents # Display existing oidcConsents
return $self->loadTemplate( return $self->loadTemplate(
$req,
'oidcConsents', 'oidcConsents',
params => { params => {
partners => [ partners => [

View File

@ -136,17 +136,17 @@ sub displayModules {
} }
elsif ( $module->[0] eq 'LoginHistory' ) { elsif ( $module->[0] eq 'LoginHistory' ) {
$moduleHash->{'SUCCESS_LOGIN'} = $moduleHash->{'SUCCESS_LOGIN'} =
$self->p->mkSessionArray( $self->p->mkSessionArray( $req,
$req->{sessionInfo}->{_loginHistory}->{successLogin}, $req->{sessionInfo}->{_loginHistory}->{successLogin},
"", 0, 0 ); "", 0, 0 );
$moduleHash->{'FAILED_LOGIN'} = $moduleHash->{'FAILED_LOGIN'} =
$self->p->mkSessionArray( $self->p->mkSessionArray( $req,
$req->{sessionInfo}->{_loginHistory}->{failedLogin}, $req->{sessionInfo}->{_loginHistory}->{failedLogin},
"", 0, 1 ); "", 0, 1 );
} }
elsif ( $module->[0] eq 'OidcConsents' ) { elsif ( $module->[0] eq 'OidcConsents' ) {
$moduleHash->{'OIDC_CONSENTS'} = $moduleHash->{'OIDC_CONSENTS'} =
$self->p->mkOidcConsent( $req->sessionInfo ); $self->p->mkOidcConsent( $req, $req->sessionInfo );
} }
push @$displayModules, $moduleHash; push @$displayModules, $moduleHash;
} }

View File

@ -69,11 +69,7 @@ sub loadTemplate {
sub displayTemplate { sub displayTemplate {
my ( $self, $req, $template, $params ) = @_; my ( $self, $req, $template, $params ) = @_;
$self->logger->debug("Return $template template"); $self->logger->debug("Return $template template");
$req->info( $req->info( $self->loadTemplate( $req, $template, params => $params ) );
$self->loadTemplate(
$template, params => $params
)
);
return PE_INFO; return PE_INFO;
} }
@ -95,8 +91,7 @@ sub createNotification {
$content =~ s/_title_/$title/; $content =~ s/_title_/$title/;
$content =~ s/_msg_/$msg/; $content =~ s/_msg_/$msg/;
if ( $notifEngine->module->notifObject->newNotification($content) ) if ( $notifEngine->module->notifObject->newNotification($content) ) {
{
$self->logger->debug("Notification $ref successfully created"); $self->logger->debug("Notification $ref successfully created");
$self->userLogger->notice( $self->userLogger->notice(
"Notification $ref / $date successfully created for $uid"); "Notification $ref / $date successfully created for $uid");

View File

@ -160,7 +160,7 @@ sub authLogout {
sub deleteSession { sub deleteSession {
my ( $self, $req ) = @_; my ( $self, $req ) = @_;
if ( my $id = $req->id || $req->userData->{_session_id} ) { if ( my $id = $req->id || $req->userData->{_session_id} ) {
my $apacheSession = $self->getApacheSession( $id ); my $apacheSession = $self->getApacheSession($id);
unless ($apacheSession) { unless ($apacheSession) {
$self->logger->debug("Session $id already deleted"); $self->logger->debug("Session $id already deleted");
return PE_OK; return PE_OK;
@ -183,7 +183,8 @@ sub deleteSession {
$req->info( $req->info(
$self->loadTemplate( $self->loadTemplate(
'simpleInfo', params => { trspan => 'logoutFromOtherApp' } $req, 'simpleInfo',
params => { trspan => 'logoutFromOtherApp' }
) )
); );

View File

@ -176,6 +176,7 @@ sub refresh {
if ($res) { if ($res) {
$req->info( $req->info(
$self->loadTemplate( $self->loadTemplate(
$req,
'simpleInfo', params => { trspan => 'rightsReloadNeedsLogout' } 'simpleInfo', params => { trspan => 'rightsReloadNeedsLogout' }
) )
); );
@ -1023,12 +1024,12 @@ sub _sumUpSession {
# Temlate loader # Temlate loader
sub loadTemplate { sub loadTemplate {
my ( $self, $name, %prm ) = @_; my ( $self, $req, $name, %prm ) = @_;
$name .= '.tpl'; $name .= '.tpl';
my $tpl = HTML::Template->new( my $tpl = HTML::Template->new(
filename => $name, filename => $name,
path => [ path => [
$self->conf->{templateDir} . '/' . $self->conf->{portalSkin}, $self->conf->{templateDir} . '/' . $self->getSkin($req),
$self->conf->{templateDir} . '/bootstrap/', $self->conf->{templateDir} . '/bootstrap/',
$self->conf->{templateDir} . '/common/' $self->conf->{templateDir} . '/common/'
], ],

View File

@ -73,7 +73,7 @@ sub run {
$self->logger->debug("Transformed message -> $msg"); $self->logger->debug("Transformed message -> $msg");
$req->info( $req->info(
$self->loadTemplate( $self->loadTemplate(
'simpleInfo', params => { trspan => $msg } $req, 'simpleInfo', params => { trspan => $msg }
) )
); );
$self->userLogger->error( 'User ' $self->userLogger->error( 'User '

View File

@ -23,7 +23,7 @@ sub run {
$self->logger->debug('History asked'); $self->logger->debug('History asked');
$req->info( ( $req->info( (
$req->sessionInfo->{_loginHistory}->{successLogin} $req->sessionInfo->{_loginHistory}->{successLogin}
? $self->p->mkSessionArray( ? $self->p->mkSessionArray( $req,
$req->sessionInfo->{_loginHistory}->{successLogin}, $req->sessionInfo->{_loginHistory}->{successLogin},
'lastLogins', 0, 0 ) 'lastLogins', 0, 0 )
: "" : ""
@ -31,14 +31,14 @@ sub run {
. ("<hr>") . ("<hr>")
. ( . (
$req->sessionInfo->{_loginHistory}->{failedLogin} $req->sessionInfo->{_loginHistory}->{failedLogin}
? $self->p->mkSessionArray( ? $self->p->mkSessionArray( $req,
$req->sessionInfo->{_loginHistory}->{failedLogin}, $req->sessionInfo->{_loginHistory}->{failedLogin},
'lastFailedLogins', 0, 1 ) 'lastFailedLogins', 0, 1 )
: "" : ""
) )
); );
unless ( $req->info ) { unless ( $req->info ) {
$req->info( $self->loadTemplate('noHistory') ); $req->info( $self->loadTemplate( $req, 'noHistory' ) );
} }
return PE_INFO; return PE_INFO;
} }

View File

@ -335,6 +335,7 @@ sub _reset {
# Use HTML template # Use HTML template
$body = $self->loadTemplate( $body = $self->loadTemplate(
$req,
'mail_confirm', 'mail_confirm',
filter => $tr, filter => $tr,
params => \%tplPrms params => \%tplPrms
@ -473,6 +474,7 @@ sub changePwd {
# Use HTML template # Use HTML template
$body = $self->loadTemplate( $body = $self->loadTemplate(
$req,
'mail_password', 'mail_password',
filter => $tr, filter => $tr,
params => \%tplPrms params => \%tplPrms

View File

@ -310,6 +310,7 @@ sub _register {
# Use HTML template # Use HTML template
$body = $self->loadTemplate( $body = $self->loadTemplate(
$req,
'mail_register_confirm', 'mail_register_confirm',
filter => $tr, filter => $tr,
params => \%tplPrms params => \%tplPrms
@ -369,6 +370,7 @@ sub _register {
# Use HTML template # Use HTML template
$body = $self->loadTemplate( $body = $self->loadTemplate(
$req,
'mail_register_done', 'mail_register_done',
filter => $tr, filter => $tr,
params => \%tplPrms params => \%tplPrms

View File

@ -69,10 +69,12 @@ sub run {
} }
} }
} }
$req->info( $self->p->mkSessionArray( $deleted, 'sessionsDeleted', 1 ) ) $req->info(
$self->p->mkSessionArray( $req, $deleted, 'sessionsDeleted', 1 ) )
if ( $self->conf->{notifyDeleted} and @$deleted ); if ( $self->conf->{notifyDeleted} and @$deleted );
$req->info( $self->p->mkSessionArray( $otherSessions, 'otherSessions', 1 ) $req->info(
. $self->_mkRemoveOtherLink() ) $self->p->mkSessionArray( $req, $otherSessions, 'otherSessions', 1 )
. $self->_mkRemoveOtherLink($req) )
if ( $self->conf->{notifyOther} and @$otherSessions ); if ( $self->conf->{notifyOther} and @$otherSessions );
PE_OK; PE_OK;
@ -82,10 +84,11 @@ sub run {
# Last part of URL is built trough javascript # Last part of URL is built trough javascript
# @return removeOther link in HTML code # @return removeOther link in HTML code
sub _mkRemoveOtherLink { sub _mkRemoveOtherLink {
my $self = shift; my ( $self, $req ) = @_;
# TODO: remove this # TODO: remove this
return $self->loadTemplate( return $self->loadTemplate(
$req,
'removeOther', 'removeOther',
params => { params => {
link => $self->conf->{portal} . "?removeOther=1" link => $self->conf->{portal} . "?removeOther=1"