OpenID SREG works !!!
This commit is contained in:
parent
7db3b688fa
commit
aa39949546
@ -173,6 +173,7 @@ sub openIDServer {
|
|||||||
},
|
},
|
||||||
extensions => {
|
extensions => {
|
||||||
sreg => sub {
|
sreg => sub {
|
||||||
|
return ( 1, {} ) unless (@_);
|
||||||
require Lemonldap::NG::Portal::OpenID::SREG;
|
require Lemonldap::NG::Portal::OpenID::SREG;
|
||||||
return $self->Lemonldap::NG::Portal::OpenID::SREG::sregHook(@_);
|
return $self->Lemonldap::NG::Portal::OpenID::SREG::sregHook(@_);
|
||||||
},
|
},
|
||||||
|
@ -17,7 +17,8 @@ sub sregHook {
|
|||||||
my ( $self, $u, $trust_root, $is_id, $is_trusted, $prm ) = splice @_;
|
my ( $self, $u, $trust_root, $is_id, $is_trusted, $prm ) = splice @_;
|
||||||
my ( @req, @opt );
|
my ( @req, @opt );
|
||||||
|
|
||||||
return 0 unless (%$prm);
|
# Refuse federation if rejected by user
|
||||||
|
return 0 if ( $self->param('confirm') == -1 );
|
||||||
return ( 0, $prm ) unless ($is_id);
|
return ( 0, $prm ) unless ($is_id);
|
||||||
|
|
||||||
$self->lmLog( "SREG start", 'debug' );
|
$self->lmLog( "SREG start", 'debug' );
|
||||||
@ -86,9 +87,6 @@ sub sregHook {
|
|||||||
# Now set datas
|
# Now set datas
|
||||||
my ( %r, %msg, %ag );
|
my ( %r, %msg, %ag );
|
||||||
|
|
||||||
print STDERR Dumper( $self->{_prm} );
|
|
||||||
use Data::Dumper;
|
|
||||||
|
|
||||||
# Requested parameters: check if already agreed or confirm is set
|
# Requested parameters: check if already agreed or confirm is set
|
||||||
foreach my $k (@req) {
|
foreach my $k (@req) {
|
||||||
my $agree = $self->{sessionInfo}->{"_openidTrust$trust_root\_$k"};
|
my $agree = $self->{sessionInfo}->{"_openidTrust$trust_root\_$k"};
|
||||||
@ -105,7 +103,6 @@ sub sregHook {
|
|||||||
$self->{sessionInfo}->{ $self->{"openIdSreg_$k"} } || '';
|
$self->{sessionInfo}->{ $self->{"openIdSreg_$k"} } || '';
|
||||||
}
|
}
|
||||||
|
|
||||||
# TODO: NOTHING WORKS HERE
|
|
||||||
# Optional parameters:
|
# Optional parameters:
|
||||||
foreach my $k (@opt) {
|
foreach my $k (@opt) {
|
||||||
$self->{"openIdSreg_$k"} =~ s/^\$//;
|
$self->{"openIdSreg_$k"} =~ s/^\$//;
|
||||||
@ -120,24 +117,19 @@ sub sregHook {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# If confirmation is returned, check the value for this field
|
# If confirmation is returned, check the value for this field
|
||||||
elsif ( $self->param('confirm') ) {
|
elsif ( $self->param('confirm') == 1 ) {
|
||||||
my $ck;
|
my $ck = 0;
|
||||||
if ( defined( $self->param("sreg_$k") ) ) {
|
if ( defined( $self->param("sreg_$k") ) ) {
|
||||||
my $ck = ( $self->param("sreg_$k") == 'OK' );
|
$ck = ( $self->param("sreg_$k") == 'OK' ) || 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
# Store the value returned
|
# Store the value returned
|
||||||
if ( !defined($agree) or $agree != $ck ) {
|
if ( !defined($agree) or $agree != $ck ) {
|
||||||
$self->{sessionInfo}->{"_openidTrust$trust_root\_$k"} =
|
$self->{sessionInfo}->{"_openidTrust$trust_root\_$k"} = 1;
|
||||||
1;
|
|
||||||
$self->updateSession(
|
$self->updateSession(
|
||||||
{ "_openidTrust$trust_root\_$k" => $ck } );
|
{ "_openidTrust$trust_root\_$k" => $ck } );
|
||||||
$agree = $ck;
|
$agree = $ck;
|
||||||
}
|
}
|
||||||
|
|
||||||
# This case happends only if user manipulates form datas
|
|
||||||
elsif ( not defined($agree) ) {
|
|
||||||
$accepted = 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user