Newer
Older
package IdPAccountManager::ServiceProvider;
use parent 'IdPAccountManager::Data::Serviceprovider';
use strict;
use IdPAccountManager::Data::Serviceprovider;
use IdPAccountManager::Data::Serviceprovider::Manager;
use IdPAccountManager::Tools;
use Conf;
require Exporter;
my @ISA = qw(Exporter);
my @EXPORT = qw();
use Carp;
## Set error mode to non fatal
IdPAccountManager::Data::Serviceprovider::Manager->error_mode('return');
}
## Print the content of a test account
sub print {
my $self = shift;
my $fd = shift || \*STDOUT;
printf $fd "ServiceProvider ID=%s; entityid=%s; displayname=%s; contacts=%s\n",
$self->id, $self->entityid, $self->displayname, $self->contacts;
return 1.
}
## list contacts for this SP, including those listed in conf.dev_sp_contact
sub list_contacts_as_array {
my $self = shift;
my @contact_list;
foreach my $contact_email (split /,/, $self->contacts()) {
push @contact_list, $contact_email;
}
foreach my $contact_email (split /,/, $Conf::global{'dev_sp_contact'}) {
push @contact_list, $contact_email;
}
return @contact_list;
}
## Check if email address is a known contact (or conf.dev_sp_contact)
sub is_contact {
my $self = shift;
my $email = shift;
foreach my $known_contact ($self->list_contacts_as_array()) {
return 1 if (lc($email) eq lc($known_contact));
}
return 0;
}
## list all test accounts
## Class method
sub list_service_providers {
my %args = @_;
my $persistent_accounts= IdPAccountManager::Data::Serviceprovider::Manager->get_serviceproviders(%args);
my $service_providers;
foreach my $persistent_sp (@{$persistent_accounts}) {
my $service_provider = new IdPAccountManager::ServiceProvider(entityid => $persistent_sp->entityid());
$service_provider->load();
push @$service_providers, $service_provider;
}
return $service_providers;
}
1; # Magic true value required at end of module
__END__
=head1 NAME
IdPAccountManager::ServiceProvider - Manage Service Providers for which test accounts have been requested for the Test Identity Provider
=head1 SYNOPSIS
=head1 DESCRIPTION
=head1 SUBROUTINES/METHODS
=head1 AUTHOR
Olivier Salaün (olivier.salaun@renater.fr)