From 9f170b97677a2ef46f2a7e7c25e7e8884dc913f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Oudot?= Date: Wed, 19 Feb 2014 14:35:59 +0000 Subject: [PATCH] Manage exportedVars the same way in all modules (#636) --- .../lib/Lemonldap/NG/Portal/UserDBDBI.pm | 8 ++------ .../lib/Lemonldap/NG/Portal/UserDBDemo.pm | 13 ++++--------- .../lib/Lemonldap/NG/Portal/UserDBLDAP.pm | 15 ++++----------- .../lib/Lemonldap/NG/Portal/UserDBSlave.pm | 5 ++--- .../lib/Lemonldap/NG/Portal/UserDBWebID.pm | 6 +++--- 5 files changed, 15 insertions(+), 32 deletions(-) diff --git a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/UserDBDBI.pm b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/UserDBDBI.pm index c6ea1ae33..724b5b64d 100644 --- a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/UserDBDBI.pm +++ b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/UserDBDBI.pm @@ -102,12 +102,8 @@ sub setSessionInfo { # Set _user unless already defined $self->{sessionInfo}->{_user} ||= $self->{user}; - while ( my ( $var, $attr ) = each %{ $self->{exportedVars} } ) { - $self->{sessionInfo}->{$var} = $self->{entry}->{$attr} - if ( defined $self->{entry}->{$attr} ); - } - - while ( my ( $var, $attr ) = each %{ $self->{dbiExportedVars} } ) { + my %vars = ( %{ $self->{exportedVars} }, %{ $self->{dbiExportedVars} } ); + while ( my ( $var, $attr ) = each %vars ) { $self->{sessionInfo}->{$var} = $self->{entry}->{$attr} if ( defined $self->{entry}->{$attr} ); } diff --git a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/UserDBDemo.pm b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/UserDBDemo.pm index 5f0ee96e3..28650ecc6 100644 --- a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/UserDBDemo.pm +++ b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/UserDBDemo.pm @@ -62,15 +62,10 @@ sub getUser { sub setSessionInfo { my $self = shift; - # Concat global exportedVars and module specific exportedVars - my @vars = (); - @vars = ( @vars, keys %{ $self->{exportedVars} } ) if $self->{exportedVars}; - @vars = ( @vars, keys %{ $self->{demoExportedVars} } ) - if $self->{demoExportedVars}; - - foreach (@vars) { - $self->{sessionInfo}->{$_} = - $self->{_demoAccounts}->{ $self->{user} }->{$_} + my %vars = ( %{ $self->{exportedVars} }, %{ $self->{demoExportedVars} } ); + while ( my ( $k, $v ) = each %vars ) { + $self->{sessionInfo}->{$k} = + $self->{_demoAccounts}->{ $self->{user} }->{$v} || ""; } diff --git a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/UserDBLDAP.pm b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/UserDBLDAP.pm index aaf48f458..fb46bb0bb 100644 --- a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/UserDBLDAP.pm +++ b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/UserDBLDAP.pm @@ -112,17 +112,10 @@ sub setSessionInfo { my $self = shift; $self->{sessionInfo}->{dn} = $self->{dn}; - foreach ( keys %{ $self->{exportedVars} } ) { - $self->{sessionInfo}->{$_} = - $self->{ldap} - ->getLdapValue( $self->{entry}, $self->{exportedVars}->{$_} ) - || ""; - } - - foreach ( keys %{ $self->{ldapExportedVars} } ) { - $self->{sessionInfo}->{$_} = - $self->{ldap} - ->getLdapValue( $self->{entry}, $self->{ldapExportedVars}->{$_} ) + my %vars = ( %{ $self->{exportedVars} }, %{ $self->{ldapExportedVars} } ); + while ( my ( $k, $v ) = each %vars ) { + $self->{sessionInfo}->{$k} = + $self->{ldap}->getLdapValue( $self->{entry}, $v ) || ""; } diff --git a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/UserDBSlave.pm b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/UserDBSlave.pm index 562e94d23..9364f94d5 100644 --- a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/UserDBSlave.pm +++ b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/UserDBSlave.pm @@ -22,9 +22,8 @@ sub setSessionInfo { return PE_FORBIDDENIP unless ( $self->checkIP ); - while ( my ( $k, $v ) = - each( %{ $self->{exportedVars} }, %{ $self->{slaveExportedVars} } ) ) - { + my %vars = ( %{ $self->{exportedVars} }, %{ $self->{slaveExportedVars} } ); + while ( my ( $k, $v ) = each %vars ) { $v = 'HTTP_' . uc($v); $v =~ s/\-/_/g; $self->{sessionInfo}->{$k} = $ENV{$v}; diff --git a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/UserDBWebID.pm b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/UserDBWebID.pm index de8c072ba..f2d3c5a26 100644 --- a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/UserDBWebID.pm +++ b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/UserDBWebID.pm @@ -34,8 +34,7 @@ sub getUser { } ## @apmethod int setSessionInfo() -# Since the job is done by AuthGoogle, here just check that required -# attributes are not null +# Get attributes from FOAF # @return Lemonldap::NG::Portal error code sub setSessionInfo { my $self = shift; @@ -45,7 +44,8 @@ sub setSessionInfo { return PE_ERROR; } - while ( my ( $k, $v ) = each ( %{ $self->{exportedVars} } , %{ $self->{webIDExportedVars} } ) ) { + my %vars = ( %{ $self->{exportedVars} }, %{ $self->{webIDExportedVars} } ); + while ( my ( $k, $v ) = each %vars ) { my $attr = $k; my $req; $attr =~ s/^!// and $req = 1;