lemonldap-ng/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/UserDB/Facebook.pm

68 lines
1.2 KiB
Perl
Raw Normal View History

2016-05-24 18:53:43 +02:00
package Lemonldap::NG::Portal::UserDB::Facebook;
use strict;
use Mouse;
use Lemonldap::NG::Portal::Main::Constants qw(PE_OK PE_MISSINGREQATTR);
2016-06-02 23:20:36 +02:00
extends 'Lemonldap::NG::Common::Module';
2016-05-24 18:53:43 +02:00
2021-04-01 23:07:58 +02:00
our $VERSION = '2.0.12';
2016-05-24 18:53:43 +02:00
has vars => (
is => 'rw',
lazy => 1,
2016-05-24 18:53:43 +02:00
builder => sub {
return {
%{ $_[0]->conf->{exportedVars} },
%{ $_[0]->conf->{facebookExportedVars} }
};
}
);
2016-06-09 20:40:20 +02:00
# INITIALIZATION
2016-05-24 18:53:43 +02:00
sub init {
return 1;
}
2016-06-09 20:40:20 +02:00
# RUNNING METHODS
2016-05-24 18:53:43 +02:00
sub getUser {
# All is done by Auth::Facebook
2021-04-01 23:07:58 +02:00
return PE_OK;
2016-05-24 18:53:43 +02:00
}
2020-12-22 15:17:23 +01:00
sub findUser {
# Nothing to do here
2021-04-01 23:07:58 +02:00
return PE_OK;
2020-12-22 15:17:23 +01:00
}
2016-05-24 18:53:43 +02:00
sub setSessionInfo {
my ( $self, $req ) = @_;
foreach my $k ( keys %{ $self->vars } ) {
my $v = $self->{vars}->{$k};
my $attr = $k;
my $required = ( $attr =~ s/^!// ) ? 1 : 0;
$req->{sessionInfo}->{$attr} = $req->data->{_facebookData}->{$v};
2017-03-03 13:17:15 +01:00
if ( $required and not( defined $req->{sessionInfo}->{$attr} ) ) {
2017-02-15 07:41:50 +01:00
$self->logger->warn(
"Required parameter $v is not provided by Facebook server, aborted"
2016-05-24 18:53:43 +02:00
);
$req->mustRedirect(0);
return PE_MISSINGREQATTR;
}
}
2021-04-01 23:07:58 +02:00
return PE_OK;
2016-05-24 18:53:43 +02:00
}
sub setGroups {
2021-04-01 23:07:58 +02:00
return PE_OK;
2016-05-24 18:53:43 +02:00
}
1;