Skip to content
Snippets Groups Projects
ServiceProvider.pm 2.28 KiB
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;
## 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)