]> wagnertech.de Git - mfinanz.git/blobdiff - SL/BackgroundJob/SelfTest.pm
kivitendo 3.9.2-0.2
[mfinanz.git] / SL / BackgroundJob / SelfTest.pm
index b715f9e07d11605b554888dde60a0cd2d17caf66..f9ea74dcf65ff2d7e2637105d35426a9571e145a 100644 (file)
@@ -26,7 +26,7 @@ use Rose::Object::MakeMethods::Generic (
    'add_full_diag'  => { interface => 'add', hash_key => 'full_diag' },
   ],
   scalar => [
-   qw(diag tester config aggreg module_nr),
+   qw(diag tester config aggreg module_nr additional_email),
   ],
 );
 
@@ -44,14 +44,22 @@ sub setup {
   $self->aggreg(TAP::Parser::Aggregator->new);
 
   $self->modules(split /\s+/, $self->config->{modules});
+  $self->modules($self->{options}->{modules}) if $self->{options}->{modules};
 }
 
 sub run {
-  my $self        = shift;
+  my $self   = shift;
+  my $db_obj = shift;
+
+  # get custom options (module list || alternate email)
+  $self->{options} = $db_obj->data_as_hash;
   $self->setup;
 
   return 1 unless $self->modules;
 
+  # set additional mail
+  $self->additional_email($self->{options}->{email}) if $self->{options}->{email} =~ m/(\S+)@(\S+)$/;
+
   foreach my $module ($self->modules) {
     $self->run_module($module);
   }
@@ -124,10 +132,13 @@ sub _send_email {
   return if !$self->config || !$self->config->{send_email_to};
 
   my $user  = $self->_email_user;
-  my $email = $user ? $user->get_config_value('email') : undef;
-
+  my $email = $self->{options}->{mail_to} ? $self->{options}->{mail_to}
+            : $user                       ? $user->get_config_value('email')
+            : undef;
   return unless $email;
 
+  $email .= $self->additional_email ? ',' . $self->additional_email : '';
+
   my ($output, $content_type) = $self->_prepare_report;
 
   my $mail              = Mailer->new;
@@ -138,7 +149,7 @@ sub _send_email {
   $mail->{message}      = $$output;
 
   my $err = $mail->send;
-  $self->add_errors('Mailer error #1', $err) if $err;
+  $self->add_errors($::locale->text('Mailer error #1', $err)) if $err;
 
 }