From 5065d38e2ee058df417a15393464cd861ddefd97 Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Fri, 15 Mar 2024 20:24:37 +0000 Subject: [PATCH] code fixes --- Controller/ApiController.php | 27 +++++++++++++------ Controller/CliController.php | 6 ++--- Models/Account.php | 2 +- Models/AccountMapper.php | 24 ++++++++++++----- Models/LocalizationMapper.php | 9 +++++++ .../Components/AddressEditor/AddressView.php | 2 +- .../Components/ContactEditor/ContactView.php | 4 +-- 7 files changed, 53 insertions(+), 21 deletions(-) diff --git a/Controller/ApiController.php b/Controller/ApiController.php index 6a63cff..c516138 100755 --- a/Controller/ApiController.php +++ b/Controller/ApiController.php @@ -40,11 +40,11 @@ use Modules\Admin\Models\ModuleStatusUpdateType; use Modules\Admin\Models\NullAccount; use Modules\Admin\Models\PermissionCategory; use Modules\Admin\Models\SettingsEnum; -use Modules\Messages\Models\SettingsEnum as SettingsEnumMessages; use Modules\Media\Models\Collection; use Modules\Media\Models\CollectionMapper; use Modules\Media\Models\UploadFile; use Modules\Messages\Models\EmailMapper; +use Modules\Messages\Models\SettingsEnum as SettingsEnumMessages; use phpOMS\Account\AccountStatus; use phpOMS\Account\AccountType; use phpOMS\Account\GroupStatus; @@ -64,8 +64,8 @@ use phpOMS\Message\Http\HttpResponse; use phpOMS\Message\Http\RequestMethod; use phpOMS\Message\Http\RequestStatusCode; use phpOMS\Message\Http\Rest; -use phpOMS\Message\Mail\MailHandler; use phpOMS\Message\Mail\DsnNotificationType; +use phpOMS\Message\Mail\MailHandler; use phpOMS\Message\Mail\Smtp; use phpOMS\Message\Mail\SubmitType; use phpOMS\Message\NotificationLevel; @@ -257,6 +257,16 @@ final class ApiController extends Controller return $handler; } + /** + * Setup default values for emails (incl. basic templating) + * + * @param \Modules\Messages\Models\Email $mail Email + * @param string $language Email language (e.g. 'en', 'de') + * + * @return bool + * + * @since 1.0.0 + */ public function setupEmailDefaults(\Modules\Messages\Models\Email $mail, string $language = '') : bool { /** @var \Model\Setting[] $emailSettings */ @@ -274,7 +284,7 @@ final class ApiController extends Controller // @todo Implement a model reading system which allows to define alternative conditions/wheres // https://github.com/Karaka-Management/phpOMS/issues/365 if ($language !== '') { - $mailL11n = $mail->getL11nByLanguage($language); + $mailL11n = $mail->getL11nByLanguage($language); $mail->subject = $mailL11n->subject; $mail->body = $mailL11n->body; $mail->bodyAlt = $mailL11n->bodyAlt; @@ -288,6 +298,7 @@ final class ApiController extends Controller ); if (empty($templateSettings)) { + /** @var \Model\Setting[] $templateSettings */ $templateSettings = $this->app->appSettings->get( names: [SettingsEnumMessages::HEADER_TEMPLATE, SettingsEnumMessages::FOOTER_TEMPLATE], module: 'Messages', @@ -313,9 +324,9 @@ final class ApiController extends Controller $mail->template = \array_merge( $mail->template, [ - '{header_template}' => $header->body, + '{header_template}' => $header->body, '{header_template_alt}' => $header->bodyAlt, - '{footer_template}' => $footer->body, + '{footer_template}' => $footer->body, '{footer_template_alt}' => $footer->bodyAlt, ] ); @@ -388,7 +399,7 @@ final class ApiController extends Controller $mail->template, [ '{reset_link}' => $resetLink, - '{user_name}' => $account->login, + '{user_name}' => $account->login, ] ); @@ -523,7 +534,7 @@ final class ApiController extends Controller $mail->template, [ '{new_password}' => $pass, - '{user_name}' => $account->login, + '{user_name}' => $account->login, ] ); @@ -3722,7 +3733,7 @@ final class ApiController extends Controller return; } - /** @var \Modules\Admin\Models\Address $address */ + /** @var \phpOMS\Stdlib\Base\Address $address */ $address = AddressMapper::get()->where('id', (int) $request->getData('id'))->execute(); $this->deleteModelRelation($request->header->account, (int) $request->getData('account'), [$address->id], AccountMapper::class, 'addresses', 'account-address', $request->getOrigin()); $this->deleteModel($request->header->account, $address, AddressMapper::class, 'address', $request->getOrigin()); diff --git a/Controller/CliController.php b/Controller/CliController.php index 1c6bfd1..1b8a699 100755 --- a/Controller/CliController.php +++ b/Controller/CliController.php @@ -127,7 +127,7 @@ final class CliController extends Controller /** * Api method to make a call to the cli app * - * @param mixed ...$data Generic data + * @param string ...$data Generic data * * @return void * @@ -143,7 +143,7 @@ final class CliController extends Controller // Enter read only mode $setting->content = (string) ApplicationStatus::READ_ONLY; - $this->app->appSetting->save([$setting]); + $this->app->appSettings->save([$setting]); $mapper = SettingMapper::yield() ->where('isEncrypted', true); @@ -164,6 +164,6 @@ final class CliController extends Controller // Restore old mode $setting->content = $oldMode; - $this->app->appSetting->save([$setting]); + $this->app->appSettings->save([$setting]); } } diff --git a/Models/Account.php b/Models/Account.php index c4ba4f6..c943695 100755 --- a/Models/Account.php +++ b/Models/Account.php @@ -59,7 +59,7 @@ class Account extends \phpOMS\Account\Account /** * Location data. * - * @var Address[] + * @var \phpOMS\Stdlib\Base\Address[] * @since 1.0.0 */ public array $addresses = []; diff --git a/Models/AccountMapper.php b/Models/AccountMapper.php index 1c17b9d..14b596b 100755 --- a/Models/AccountMapper.php +++ b/Models/AccountMapper.php @@ -275,6 +275,18 @@ class AccountMapper extends DataMapperFactory } } + /** + * Find accounts that have read permission + * + * @param int $unitId Unit id + * @param string $module Module name + * @param int $category Category + * @param int $element Element id + * + * @return int[] Account ids + * + * @since 1.0.0 + */ public static function findReadPermission( int $unitId, string $module, @@ -284,7 +296,7 @@ class AccountMapper extends DataMapperFactory { $accounts = []; - $sql =<<raw($sql)->execute()->fetchAll(\PDO::FETCH_ASSOC); + $query = new Builder(self::$db); + $results = $query->raw($sql)->execute()?->fetchAll(\PDO::FETCH_ASSOC) ?? []; foreach ($results as $result) { $accounts[] = (int) $result['account']; } - $sql =<<raw($sql)->execute()->fetchAll(\PDO::FETCH_ASSOC); + $query = new Builder(self::$db); + $results = $query->raw($sql)->execute()?->fetchAll(\PDO::FETCH_ASSOC) ?? []; foreach ($results as $result) { $accounts[] = (int) $result['account']; diff --git a/Models/LocalizationMapper.php b/Models/LocalizationMapper.php index 834e72d..2f7e851 100755 --- a/Models/LocalizationMapper.php +++ b/Models/LocalizationMapper.php @@ -97,6 +97,15 @@ final class LocalizationMapper extends DataMapperFactory * * @var array * @since 1.0.0 + * + * @question Is there a real significant difference between by and column? + * By defines the reference id + * Column defines the data which is stored in the variable IFF a scalar type should be stored instead of an object + * Maybe using a flag instead of column would be better: e.g. useScalar = true -> don't create object + * But sometimes we don't define 'by' if the 'by' is the primary key: + * by => id + * column => whatever + * But we don't type this and only define column. */ public const OWNS_ONE = [ 'country' => [ diff --git a/Theme/Backend/Components/AddressEditor/AddressView.php b/Theme/Backend/Components/AddressEditor/AddressView.php index 4567d80..3fdc95d 100644 --- a/Theme/Backend/Components/AddressEditor/AddressView.php +++ b/Theme/Backend/Components/AddressEditor/AddressView.php @@ -73,7 +73,7 @@ class AddressView extends View /** * Reference id * - * @var string + * @var int * @since 1.0.0 */ public int $refId = 0; diff --git a/Theme/Backend/Components/ContactEditor/ContactView.php b/Theme/Backend/Components/ContactEditor/ContactView.php index 31bec73..737edda 100644 --- a/Theme/Backend/Components/ContactEditor/ContactView.php +++ b/Theme/Backend/Components/ContactEditor/ContactView.php @@ -33,7 +33,7 @@ class ContactView extends View /** * Contact * - * @var Modules\Admin\Models\Contact[] + * @var \Modules\Admin\Models\Contact[] * @since 1.0.0 */ public array $contacts = []; @@ -73,7 +73,7 @@ class ContactView extends View /** * Reference id * - * @var string + * @var int * @since 1.0.0 */ public int $refId = 0;