diff --git a/app/Console/Commands/SpammerProcess/RebuildUserSpammerEstimator.php b/app/Console/Commands/SpammerProcess/RebuildUserSpammerEstimator.php index d968b37c..736d45d7 100644 --- a/app/Console/Commands/SpammerProcess/RebuildUserSpammerEstimator.php +++ b/app/Console/Commands/SpammerProcess/RebuildUserSpammerEstimator.php @@ -13,6 +13,7 @@ **/ use Illuminate\Console\Command; use Illuminate\Support\Facades\Config; +use Illuminate\Support\Facades\Log; use Symfony\Component\Process\Process; use Exception; /** @@ -50,35 +51,44 @@ final class RebuildUserSpammerEstimator extends Command */ public function handle() { - $connections = Config::get('database.connections', []); - $db = $connections['openstackid'] ?? []; - $host = $db['host'] ?? ''; - $database = $db['database'] ?? ''; - $username = $db['username'] ?? ''; - $password = $db['password'] ?? ''; + try { + $connections = Config::get('database.connections', []); + $db = $connections['openstackid'] ?? []; + $host = $db['host'] ?? ''; + $database = $db['database'] ?? ''; + $username = $db['username'] ?? ''; + $password = $db['password'] ?? ''; - $command = sprintf( - '%s/app/Console/Commands/SpammerProcess/estimator_build.sh "%s" "%s" "%s" "%s" "%s"', - base_path(), - base_path().'/app/Console/Commands/SpammerProcess', - $host, - $username, - $password, - $database - ); + $command = sprintf( + '%s/app/Console/Commands/SpammerProcess/estimator_build.sh "%s" "%s" "%s" "%s" "%s"', + base_path(), + base_path() . '/app/Console/Commands/SpammerProcess', + $host, + $username, + $password, + $database + ); - $process = new Process($command); - $process->setTimeout(PHP_INT_MAX); - $process->setIdleTimeout(PHP_INT_MAX); - $process->run(); + Log::debug(sprintf("RebuildUserSpammerEstimator::handle running command %s", $command)); - while ($process->isRunning()) { + $process = new Process($command); + $process->setTimeout(PHP_INT_MAX); + $process->setIdleTimeout(PHP_INT_MAX); + $process->run(); + + while ($process->isRunning()) { + } + + $output = $process->getOutput(); + + Log::debug(sprintf("RebuildUserSpammerEstimator::handle output %s", $output)); + + if (!$process->isSuccessful()) { + throw new Exception("Process Error!"); + } } - - $output = $process->getOutput(); - - if (!$process->isSuccessful()) { - throw new Exception("Process Error!"); + catch (Exception $ex){ + Log::error($ex); } } } \ No newline at end of file diff --git a/app/Console/Commands/SpammerProcess/UserSpammerProcessor.php b/app/Console/Commands/SpammerProcess/UserSpammerProcessor.php index cade79f8..a4a8ebc5 100644 --- a/app/Console/Commands/SpammerProcess/UserSpammerProcessor.php +++ b/app/Console/Commands/SpammerProcess/UserSpammerProcessor.php @@ -17,6 +17,7 @@ use Auth\Repositories\IUserRepository; use Auth\User; use Illuminate\Console\Command; use Illuminate\Support\Facades\Config; +use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Mail; use Illuminate\Support\Facades\URL; use Symfony\Component\Process\Process; @@ -68,60 +69,70 @@ final class UserSpammerProcessor extends Command */ public function handle() { - $connections = Config::get('database.connections', []); - $db = $connections['openstackid'] ?? []; - $host = $db['host'] ?? ''; - $database = $db['database'] ?? ''; - $username = $db['username'] ?? ''; - $password = $db['password'] ?? ''; + try { + $connections = Config::get('database.connections', []); + $db = $connections['openstackid'] ?? []; + $host = $db['host'] ?? ''; + $database = $db['database'] ?? ''; + $username = $db['username'] ?? ''; + $password = $db['password'] ?? ''; - $command = sprintf( - '%s/app/Console/Commands/SpammerProcess/estimator_process.sh "%s" "%s" "%s" "%s" "%s"', - base_path(), - base_path().'/app/Console/Commands/SpammerProcess', - $host, - $username, - $password, - $database - ); - $default = Config::get("database.default"); - $process = new Process($command); - $process->setTimeout(PHP_INT_MAX); - $process->setIdleTimeout(PHP_INT_MAX); - $process->run(); + $command = sprintf( + '%s/app/Console/Commands/SpammerProcess/estimator_process.sh "%s" "%s" "%s" "%s" "%s"', + base_path(), + base_path() . '/app/Console/Commands/SpammerProcess', + $host, + $username, + $password, + $database + ); - while ($process->isRunning()) { + Log::debug(sprintf("UserSpammerProcessor::handle running command %s", $command)); + + $process = new Process($command); + $process->setTimeout(PHP_INT_MAX); + $process->setIdleTimeout(PHP_INT_MAX); + $process->run(); + + while ($process->isRunning()) { + } + + $csv_content = $process->getOutput(); + + Log::debug(sprintf("UserSpammerProcessor::handle output %s", $csv_content)); + + if (!$process->isSuccessful()) { + throw new Exception("Process Error!"); + } + + $rows = CSVReader::load($csv_content); + + // send email with excerpt + + $users = []; + + foreach ($rows as $row) { + $user_id = intval($row["ID"]); + $type = $row["Type"]; + $user = $this->user_repository->getById($user_id); + if (is_null($user) || !$user instanceof User) continue; + + $users[] = [ + 'id' => $user->getId(), + 'email' => $user->getEmail(), + 'full_name' => $user->getFullName(), + 'spam_type' => $type, + 'edit_link' => URL::route("edit_user", ["user_id" => $user->getId()], true) + ]; + } + + if (count($users) > 0 && !empty(Config::get('mail.user_spam_processor_to'))) { + Log::debug("UserSpammerProcessor::handle sending email"); + Mail::queue(new UserSpammerProcessorResultsEmail($users)); + } } - - $csv_content = $process->getOutput(); - - if (!$process->isSuccessful()) { - throw new Exception("Process Error!"); - } - - $rows = CSVReader::load($csv_content); - - // send email with excerpt - - $users = []; - - foreach($rows as $row) { - $user_id = intval($row["ID"]); - $type = $row["Type"]; - $user = $this->user_repository->getById($user_id); - if(is_null($user) || !$user instanceof User) continue; - - $users[] = [ - 'id' => $user->getId(), - 'email' => $user->getEmail(), - 'full_name' => $user->getFullName(), - 'spam_type' => $type, - 'edit_link' => URL::route("edit_user", ["user_id" => $user->getId()], true) - ]; - } - - if(count($users) > 0 && !empty(Config::get('mail.user_spam_processor_to'))){ - Mail::queue(new UserSpammerProcessorResultsEmail($users)); + catch (Exception $ex){ + Log::error($ex); } } } \ No newline at end of file diff --git a/app/Mail/OAuth2ClientLocked.php b/app/Mail/OAuth2ClientLocked.php index a6386827..a1f98015 100644 --- a/app/Mail/OAuth2ClientLocked.php +++ b/app/Mail/OAuth2ClientLocked.php @@ -27,6 +27,8 @@ class OAuth2ClientLocked extends Mailable { use Queueable, SerializesModels; + public $tries = 1; + /** * @var string */ diff --git a/app/Mail/UserEmailVerificationRequest.php b/app/Mail/UserEmailVerificationRequest.php index 4450e822..35175ff2 100644 --- a/app/Mail/UserEmailVerificationRequest.php +++ b/app/Mail/UserEmailVerificationRequest.php @@ -26,6 +26,8 @@ final class UserEmailVerificationRequest extends Mailable { use Queueable, SerializesModels; + public $tries = 2; + /** * @var string */ diff --git a/app/Mail/UserEmailVerificationSuccess.php b/app/Mail/UserEmailVerificationSuccess.php index 6891b022..4fd433b4 100644 --- a/app/Mail/UserEmailVerificationSuccess.php +++ b/app/Mail/UserEmailVerificationSuccess.php @@ -24,6 +24,8 @@ class UserEmailVerificationSuccess extends Mailable { use Queueable, SerializesModels; + public $tries = 2; + /** * @var string */ diff --git a/app/Mail/UserLockedEmail.php b/app/Mail/UserLockedEmail.php index 1af299e3..bb9054b9 100644 --- a/app/Mail/UserLockedEmail.php +++ b/app/Mail/UserLockedEmail.php @@ -26,6 +26,8 @@ final class UserLockedEmail extends Mailable { use Queueable, SerializesModels; + public $tries = 2; + /** * @var string */ diff --git a/app/Mail/UserPasswordResetMail.php b/app/Mail/UserPasswordResetMail.php index f236022e..84b88d86 100644 --- a/app/Mail/UserPasswordResetMail.php +++ b/app/Mail/UserPasswordResetMail.php @@ -25,6 +25,8 @@ final class UserPasswordResetMail extends Mailable { use Queueable, SerializesModels; + public $tries = 2; + /** * @var string */ diff --git a/app/Mail/UserPasswordResetRequestMail.php b/app/Mail/UserPasswordResetRequestMail.php index 90614cd9..f5a4383e 100644 --- a/app/Mail/UserPasswordResetRequestMail.php +++ b/app/Mail/UserPasswordResetRequestMail.php @@ -27,6 +27,8 @@ final class UserPasswordResetRequestMail extends Mailable { use Queueable, SerializesModels; + public $tries = 2; + /** * @var string */ diff --git a/app/Mail/UserSpammerProcessorResultsEmail.php b/app/Mail/UserSpammerProcessorResultsEmail.php index e02178fe..cb3e08cc 100644 --- a/app/Mail/UserSpammerProcessorResultsEmail.php +++ b/app/Mail/UserSpammerProcessorResultsEmail.php @@ -23,6 +23,8 @@ class UserSpammerProcessorResultsEmail extends Mailable { use Queueable, SerializesModels; + public $tries = 1; + /** * @var array */ @@ -42,9 +44,10 @@ class UserSpammerProcessorResultsEmail extends Mailable { $subject = sprintf("[%s] User Spammer Process Result", Config::get('app.app_name')); - + $to = Config::get("mail.user_spam_processor_to"); + $to = explode(',', $to); return $this->from(Config::get("mail.from")) - ->to(Config::get("mail.user_spam_processor_to")) + ->to($to) ->subject($subject) ->view('emails.user_spammer_process_result'); } diff --git a/app/Mail/WelcomeNewUserEmail.php b/app/Mail/WelcomeNewUserEmail.php index dd265ab3..60c3615d 100644 --- a/app/Mail/WelcomeNewUserEmail.php +++ b/app/Mail/WelcomeNewUserEmail.php @@ -25,6 +25,8 @@ final class WelcomeNewUserEmail extends Mailable { use Queueable, SerializesModels; + public $tries = 1; + /** * @var string */