From 2398a78105f814a09ba51a30809fad73830ab39f Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Sat, 6 May 2023 11:42:06 +0000 Subject: [PATCH] make id public, organigram impl. media password/encryption, settings bug fix, Money->FloatInt change, ... --- Admin/Install/Workflow.install.json | 35 +++++++++++++++++++++ Admin/Install/Workflow.php | 43 ++++++++++++++++++++++++++ Controller/CliController.php | 47 +++++++++++------------------ info.json | 3 +- 4 files changed, 98 insertions(+), 30 deletions(-) create mode 100755 Admin/Install/Workflow.install.json create mode 100755 Admin/Install/Workflow.php diff --git a/Admin/Install/Workflow.install.json b/Admin/Install/Workflow.install.json new file mode 100755 index 0000000..0064d9f --- /dev/null +++ b/Admin/Install/Workflow.install.json @@ -0,0 +1,35 @@ +{ + "triggers": [ + ], + "actions": { + "1000700001": { + "name": "Error report", + "description": { + "en": "Send error report", + "de": "Versende Fehlerbericht" + }, + "function_type": "Cli", + "function": "cliLogReport", + "module": "Monitoring", + "inputs": [ + "email", + "{*}" + ], + "outputs": [ + "resources[]", + "{*}" + ], + "settings": { + "email": { + "type": "input", + "subtype": "text", + "default": null, + "title": { + "en": "Email", + "de": "Email" + } + } + } + } + } +} \ No newline at end of file diff --git a/Admin/Install/Workflow.php b/Admin/Install/Workflow.php new file mode 100755 index 0000000..75ba948 --- /dev/null +++ b/Admin/Install/Workflow.php @@ -0,0 +1,43 @@ + __DIR__ . '/Workflow.install.json']); + } +} diff --git a/Controller/CliController.php b/Controller/CliController.php index f15493a..1ba71d9 100755 --- a/Controller/CliController.php +++ b/Controller/CliController.php @@ -47,45 +47,34 @@ final class CliController extends Controller */ public function cliLogReport(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface { - //return new NullView(); + $handler = $this->app->moduleManager->get('Admin', 'Api')->setUpServerMailHandler(); - /** @var \Model\Setting[] $emailSettings */ $emailSettings = $this->app->appSettings->get( - names: [ - SettingsEnum::MAIL_SERVER_ADDR, - SettingsEnum::MAIL_SERVER_CERT, - SettingsEnum::MAIL_SERVER_KEY, - SettingsEnum::MAIL_SERVER_KEYPASS, - SettingsEnum::MAIL_SERVER_TLS, - ], - module: 'Admin' + names: SettingsEnum::MAIL_SERVER_ADDR, + module: 'OnlineResourceWatcher' ); - /** @var \Modules\Admin\Models\Account $account */ - $account = AccountMapper::get()->where('id', 1)->execute(); + $today = new \DateTime('now'); - /** @var \phpOMS\Message\Mail\MailHandler $mailHandler */ - $mailHandler = $this->app->moduleManager->get('Admin', 'Api')->setUpServerMailHandler(); + $hasErrorReport = \is_file($file = __DIR__ . '/../../../Logs/' . $today->format('Y-m-d') . '.log'); + // @todo: define report email template $mail = new Email(); - $mail->setFrom($emailSettings[SettingsEnum::MAIL_SERVER_ADDR]->content, 'Karaka'); - $mail->addTo($emailSettings[SettingsEnum::MAIL_SERVER_ADDR]->content, \trim($account->name1 . ' ' . $account->name2 . ' ' . $account->name3)); - $mail->subject = 'Log report'; - $mail->body = ''; - $mail->msgHTML('Attached please find the daily log report'); - $mail->addAttachment(__DIR__ . '/../../../humans.txt'); + $mail->setFrom($emailSettings->content); + $mail->addTo($emailSettings->content); + $mail->subject = 'Error report'; - if (!empty($emailSettings[SettingsEnum::MAIL_SERVER_CERT]->content ?? '') - && !empty($emailSettings[SettingsEnum::MAIL_SERVER_KEY]->content ?? '') - ) { - $mail->sign( - $emailSettings[SettingsEnum::MAIL_SERVER_CERT]->content, - $emailSettings[SettingsEnum::MAIL_SERVER_KEY]->content, - $emailSettings[SettingsEnum::MAIL_SERVER_KEYPASS]->content - ); + if ($hasErrorReport) { + $mail->body = 'Your daily Error report.'; + $mail->bodyAlt = 'Your daily Error report.'; + + $mail->addAttachment($file); + } else { + $mail->body = 'No errors today.'; + $mail->bodyAlt = 'No errors today.'; } - $mailHandler->send($mail); + $handler->send($mail); return new NullView(); } diff --git a/info.json b/info.json index 190cc10..3740769 100755 --- a/info.json +++ b/info.json @@ -20,7 +20,8 @@ "Admin": "1.0.0" }, "providing": { - "Navigation": "*" + "Navigation": "*", + "Workflow": "*" }, "load": [ {