diff --git a/bin/account-manager-client.pl b/bin/account-manager-client.pl index 52f39429274ac50450c834996cc1d76c7f1ce849..21074214c7abf9bdce94c40c8b84c5c547787f33 100755 --- a/bin/account-manager-client.pl +++ b/bin/account-manager-client.pl @@ -47,43 +47,32 @@ unless ( if ($options{'add_test_account'}) { - my $logger = IdPAccountManager::Logger->new( - file => $Conf::global{'log_file'}, - verbosity => $Conf::global{'log_level'} - ); - - unless ($options{'account_profile'}) { - die "Missing account_profile option"; - } + pod2usage( + -message => "missing account_profile option, aborting\n", + -verbose => 0 + ) unless $options{'account_profile'}; - unless ($options{'sp_entityid'}) { - die "Missing sp_entityid option"; - } + pod2usage( + -message => "missing sp_entityid option, aborting\n", + -verbose => 0 + ) unless $options{'sp_entityid'}; my $test_account = IdPAccountManager::TestAccount->new( account_profile => $options{'account_profile'}, sp_entityid => $options{'sp_entityid'} ); - unless (defined $test_account) { - $logger->log(level => LOG_ERROR, message => "Failed to create test account"); - exit -1; - } - unless ($test_account->save()) { - $logger->log(level => LOG_ERROR, message => "Failed to create test account"); - exit -1; - } + die "Failed to create test account\n" + unless $test_account; + + die "Failed to save test account\n" + unless $test_account->save(); printf "Account created:\n\tuserid: user%d\n\tpassword: %s\n", $test_account->get('id'), $test_account->get('user_password'); } elsif ($options{'list_test_accounts'}) { - my $logger = IdPAccountManager::Logger->new( - file => $Conf::global{'log_file'}, - verbosity => $Conf::global{'log_level'} - ); - my %args; if ($options{'sp_entityid'}) { push @{ $args{'query'} }, 'sp_entityid' => $options{'sp_entityid'}; @@ -106,42 +95,36 @@ if ($options{'add_test_account'}) { foreach my $test_account (@$all) { $test_account->print(); - $test_account->delete || die if ($options{'delete'}); + next unless $options{'delete'}; + die "failed to delete test account\n" + unless $test_account->delete(); } if ($options{'delete'}) { printf "%d accounts removed\n", $#{$all} + 1; - ## Update simpleSamlPhp configuration file + die "failed to update simpleSAMLphp configuration file\n" + unless IdPAccountManager::Tools::update_ssp_authsources(); + printf "Update simpleSamlPhp configuration file...\n"; - unless(IdPAccountManager::Tools::update_ssp_authsources()) { - $logger->log( - level => LOG_ERROR, - message => "Failed to create simpleSAMLphp configuration file" - ); - } } } elsif ($options{'parse_federation_metadata'}) { my $federation_metadata = IdPAccountManager::SAMLMetadata->new(); - unless ( - $federation_metadata->load( + + die "unable to load federation metadata\n" + unless $federation_metadata->load( federation_metadata_file_path => $Conf::global{'federation_metadata_file_path'} - ) - ) - { - die; - } + ); my %args; if ($options{'sp_entityid'}) { $args{'filter_entity_id'} = $options{'sp_entityid'}; } - unless ($federation_metadata->parse(%args)) { - die; - } + die "unable to parse federation metadata\n" + unless $federation_metadata->parse(%args); printf "Document %s parsed\n", $Conf::global{'federation_metadata_file_path'}; @@ -154,18 +137,15 @@ if ($options{'add_test_account'}) { } elsif ($options{'add_service_provider'}) { - my $logger = IdPAccountManager::Logger->new( - file => $Conf::global{'log_file'}, - verbosity => $Conf::global{'log_level'} - ); - - unless ($options{'sp_entityid'}) { - die "Missing sp_entityid option"; - } + pod2usage( + -message => "missing sp_entityid option, aborting\n", + -verbose => 0 + ) unless $options{'sp_entityid'}; - unless ($options{'contacts'}) { - die "Missing contacts option"; - } + pod2usage( + -message => "missing contacts option, aborting\n", + -verbose => 0 + ) unless $options{'contacts'}; ## Check if entry already exists in DB first my $service_provider = @@ -185,18 +165,14 @@ if ($options{'add_test_account'}) { contacts => $options{'contacts'}, displayname => $options{'displayname'} ); - unless (defined $service_provider) { - $logger->log(level => LOG_ERROR, message => "Failed to create service provider"); - exit -1; - } + die "failed to create service provider\n" + unless $service_provider; } - unless ($service_provider->save()) { - $logger->log(level => LOG_ERROR, message => "Failed to create service provider"); - exit -1; - } + die "failed to save service provider" + unless $service_provider->save(); - printf "Service Provider created:\n"; + printf "Service Provider created\n"; } elsif ($options{'list_service_providers'}) { @@ -235,7 +211,9 @@ if ($options{'add_test_account'}) { foreach my $authentication_token (@$all) { $authentication_token->print(); - $authentication_token->delete || die if ($options{'delete'}); + next unless options{'delete'}; + die "failed to delete authentication token\n" + unless $authentication_token->delete(); } if ($options{'delete'}) { @@ -253,84 +231,75 @@ if ($options{'add_test_account'}) { my $authentication_token = IdPAccountManager::AuthenticationToken->new(%args); - unless ($authentication_token->load()) { - die "No corresponding token found in DB\n"; - } + die "No corresponding token found in DB\n" + unless $authentication_token->load(); if ($options{'sp_entityid'}) { - unless ($authentication_token->get('sp_entityid') eq - $options{'sp_entityid'}) - { - die "Authentication token cannot be used for this SP\n"; - } + die "Authentication token cannot be used for this SP\n" + unless $authentication_token->get('sp_entityid') + eq $options{'sp_entityid'}; } $authentication_token->print(); } elsif ($options{'add_authentication_token'}) { - my $logger = IdPAccountManager::Logger->new( - file => $Conf::global{'log_file'}, - verbosity => $Conf::global{'log_level'} - ); - unless ($options{'email_address'}) { - die "Missing email_address option"; - } + pod2usage( + -message => "missing email_address option, aborting\n", + -verbose => 0 + ) unless $options{'email_address'}; - unless ($options{'sp_entityid'}) { - die "Missing sp_entityid option"; - } + pod2usage( + -message => "missing sp_entityid option, aborting\n", + -verbose => 0 + ) unless $options{'sp_entityid'}; my $authentication_token = IdPAccountManager::AuthenticationToken->new( 'email_address' => $options{'email_address'}, 'sp_entityid' => $options{'sp_entityid'} ); - unless (defined $authentication_token) { - $logger->log(level => LOG_ERROR, message => "Failed to create token object"); - exit -1; - } + + die "failed to create authentication token\n" + unless $authentication_token; ## First remove token if on exist for this email+SP if ($authentication_token->load()) { - unless ($authentication_token->delete()) { - $logger->log(level => LOG_ERROR, message => "Failed to delete token"); - exit -1; - } + die "failed to delete authentication token\n" + unless $authentication_token->delete(); $authentication_token = IdPAccountManager::AuthenticationToken->new( 'email_address' => $options{'email_address'}, 'sp_entityid' => $options{'sp_entityid'} ); - unless (defined $authentication_token) { - $logger->log(level => LOG_ERROR, message => "Failed to create token object"); - exit -1; - } + die "failed to create authentication token\n" + unless $authentication_token; } - unless ($authentication_token->save()) { - $logger->log(level => LOG_ERROR, message => "Failed to create token"); - exit -1; - } + die "failed to save authentication token\n" + unless $authentication_token->save(); $authentication_token->print(); } elsif ($options{'send_notice'}) { - unless ($options{'email_address'}) { - die "Missing email_address option"; - } - unless ( - IdPAccountManager::Tools::mail_notice( + pod2usage( + -message => "missing email_address option, aborting\n", + -verbose => 0 + ) unless $options{'email_address'}; + + my $logger = IdPAccountManager::Logger->new( + file => $Conf::global{'log_file'}, + verbosity => $Conf::global{'log_level'} + ); + + die "Failed to send mail notice to $options{'email_address'}\n" + unless IdPAccountManager::Tools::mail_notice( 'template' => 'templates/mail/notification_generic_error.tt2.eml', 'data' => {}, - 'to' => $options{'email_address'} + 'to' => $options{'email_address'}, 'logger' => $logger - ) - ) - { - die "Failed to send mail notice to $options{'email_address'}\n"; - } + ); printf "Mail notice sent to $options{'email_address'}\n";