diff --git a/Admin/Installer.php b/Admin/Installer.php index 55a7ec2..6cd059d 100755 --- a/Admin/Installer.php +++ b/Admin/Installer.php @@ -142,6 +142,10 @@ final class Installer extends InstallerAbstract $querySqlite = new Builder($sqlite); $countries = $querySqlite->select('*')->from('country')->execute(); + if ($countries === null) { + return; + } + foreach ($countries as $country) { $query->values( $country['country_name'] === null ? null : \trim($country['country_name']), @@ -177,6 +181,10 @@ final class Installer extends InstallerAbstract $querySqlite = new Builder($sqlite); $languages = $querySqlite->select('*')->from('language')->execute(); + if ($languages === null) { + return; + } + foreach ($languages as $language) { $query->values( $language['language_name'] === null ? null : \trim($language['language_name']), @@ -212,6 +220,10 @@ final class Installer extends InstallerAbstract $querySqlite = new Builder($sqlite); $currencies = $querySqlite->select('*')->from('currency')->execute(); + if ($currencies === null) { + return; + } + foreach ($currencies as $currency) { $query->values( $currency['currency_id'], @@ -253,7 +265,7 @@ final class Installer extends InstallerAbstract } $adminData = \json_decode($adminFile, true) ?? []; - if ($adminData === false) { + if (!\is_array($adminData)) { throw new \Exception(); // @codeCoverageIgnore } diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e9b4371..4bbb819 100755 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -16,7 +16,7 @@ Generally, the development philosophy is result orientated. This means that anyo Developers are encouraged to pick open tasks with high priorities according to their own skill level. Senior developers may directly assign tasks to developers based on their importance. New developers may find it easier to start with a task that has a low priority as they often also have a lower difficulty. -Open tasks can be found in the project overview: [PROJECT.md](../Project/PROJECT.md) +Open tasks can be found in the project overview: [PROJECT.md](https://github.com/Karaka-Management/Organization-Guide/blob/master/Project/PROJECT.md) Tasks currently in development are prefixed in the priority column with an asterisk `*` and a name tag in the task description of the developer who is working on the task. diff --git a/Controller/ApiController.php b/Controller/ApiController.php index 2dae6ca..6023cc5 100755 --- a/Controller/ApiController.php +++ b/Controller/ApiController.php @@ -100,7 +100,7 @@ final class ApiController extends Controller * * @since 1.0.0 */ - public function apiLogin(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + public function apiLogin(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void { $response->header->set('Content-Type', MimeType::M_JSON . '; charset=utf-8', true); @@ -131,7 +131,7 @@ final class ApiController extends Controller * * @since 1.0.0 */ - public function apiLogout(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + public function apiLogout(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void { $response->header->set('Content-Type', MimeType::M_JSON . '; charset=utf-8', true); @@ -195,7 +195,7 @@ final class ApiController extends Controller * * @since 1.0.0 */ - public function apiForgot(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + public function apiForgot(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void { $account = AccountMapper::get()->where('login', (string) $request->getData('login'))->execute(); $forgotten = $this->app->appSettings->get( @@ -291,7 +291,7 @@ final class ApiController extends Controller * * @since 1.0.0 */ - public function apiResetPassword(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + public function apiResetPassword(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void { $forgotten = $this->app->appSettings->get( names: [SettingsEnum::LOGIN_FORGOTTEN_DATE, SettingsEnum::LOGIN_FORGOTTEN_TOKEN], @@ -396,7 +396,7 @@ final class ApiController extends Controller * * @since 1.0.0 */ - public function apiSettingsGet(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + public function apiSettingsGet(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void { $id = $request->getData('id'); $group = $request->getData('group'); @@ -430,7 +430,7 @@ final class ApiController extends Controller * * @since 1.0.0 */ - public function apiSettingsSet(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + public function apiSettingsSet(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void { $dataSettings = $request->getDataJson('settings'); @@ -481,7 +481,7 @@ final class ApiController extends Controller * * @since 1.0.0 */ - public function apiSettingsAccountLocalizationSet(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + public function apiSettingsAccountLocalizationSet(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void { $requestAccount = $request->header->account; $accountId = (int) $request->getData('account_id'); @@ -626,7 +626,7 @@ final class ApiController extends Controller * * @since 1.0.0 */ - public function apiSettingsDesignSet(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + public function apiSettingsDesignSet(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void { $uploadedFiles = $request->getFiles(); @@ -654,7 +654,7 @@ final class ApiController extends Controller * * @since 1.0.0 */ - public function apiInstallApplication(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + public function apiInstallApplication(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void { $appManager = new ApplicationManager($this->app); @@ -720,7 +720,7 @@ final class ApiController extends Controller * * @since 1.0.0 */ - public function apiGroupGet(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + public function apiGroupGet(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void { /** @var \Modules\Admin\Models\Group $group */ $group = GroupMapper::get()->where('id', (int) $request->getData('id'))->execute(); @@ -740,7 +740,7 @@ final class ApiController extends Controller * * @since 1.0.0 */ - public function apiGroupUpdate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + public function apiGroupUpdate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void { /** @var \Modules\Admin\Models\Group $old */ $old = clone GroupMapper::get()->where('id', (int) $request->getData('id'))->execute(); @@ -804,7 +804,7 @@ final class ApiController extends Controller * * @since 1.0.0 */ - public function apiGroupCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + public function apiGroupCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void { if (!empty($val = $this->validateGroupCreate($request))) { $response->set('group_create', new FormValidation($val)); @@ -852,7 +852,7 @@ final class ApiController extends Controller * * @since 1.0.0 */ - public function apiGroupDelete(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + public function apiGroupDelete(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void { if (((int) $request->getData('id')) === 3) { // admin group cannot be deleted @@ -880,7 +880,7 @@ final class ApiController extends Controller * * @since 1.0.0 */ - public function apiGroupFind(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + public function apiGroupFind(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void { $response->header->set('Content-Type', MimeType::M_JSON, true); $response->set( @@ -904,7 +904,7 @@ final class ApiController extends Controller * * @since 1.0.0 */ - public function apiAccountGet(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + public function apiAccountGet(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void { /** @var Account $account */ $account = AccountMapper::get()->where('id', (int) $request->getData('id'))->execute(); @@ -924,7 +924,7 @@ final class ApiController extends Controller * * @since 1.0.0 */ - public function apiAccountFind(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + public function apiAccountFind(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void { $response->header->set('Content-Type', MimeType::M_JSON, true); $response->set( @@ -954,7 +954,7 @@ final class ApiController extends Controller * * @since 1.0.0 */ - public function apiAccountGroupFind(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + public function apiAccountGroupFind(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void { /** @var Account[] $accounts */ $accounts = \array_values( @@ -1029,7 +1029,7 @@ final class ApiController extends Controller * * @since 1.0.0 */ - public function apiAccountCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + public function apiAccountCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void { if (!empty($val = $this->validateAccountCreate($request))) { $response->set('account_create', new FormValidation($val)); @@ -1148,7 +1148,7 @@ final class ApiController extends Controller * * @since 1.0.0 */ - public function apiAccountDelete(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + public function apiAccountDelete(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void { /** @var Account $account */ $account = AccountMapper::get()->where('id', (int) ($request->getData('id')))->execute(); @@ -1169,7 +1169,7 @@ final class ApiController extends Controller * * @since 1.0.0 */ - public function apiAccountUpdate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + public function apiAccountUpdate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void { /** @var Account $old */ $old = clone AccountMapper::get()->where('id', (int) $request->getData('id'))->execute(); @@ -1225,7 +1225,7 @@ final class ApiController extends Controller * * @since 1.0.0 */ - public function apiModuleStatusUpdate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + public function apiModuleStatusUpdate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void { $module = $request->getData('module'); $status = (int) $request->getData('status'); @@ -1401,7 +1401,7 @@ final class ApiController extends Controller * * @since 1.0.0 */ - public function apiAccountPermissionGet(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + public function apiAccountPermissionGet(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void { /** @var AccountPermission $account */ $account = AccountPermissionMapper::get()->where('id', (int) $request->getData('id'))->execute(); @@ -1421,7 +1421,7 @@ final class ApiController extends Controller * * @since 1.0.0 */ - public function apiGroupPermissionGet(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + public function apiGroupPermissionGet(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void { /** @var GroupPermission $group */ $group = GroupPermissionMapper::get()->where('id', (int) $request->getData('id'))->execute(); @@ -1441,7 +1441,7 @@ final class ApiController extends Controller * * @since 1.0.0 */ - public function apiGroupPermissionDelete(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + public function apiGroupPermissionDelete(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void { /** @var GroupPermission $permission */ $permission = GroupPermissionMapper::get()->where('id', (int) $request->getData('id'))->execute(); @@ -1470,7 +1470,7 @@ final class ApiController extends Controller * * @since 1.0.0 */ - public function apiAccountPermissionDelete(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + public function apiAccountPermissionDelete(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void { /** @var AccountPermission $permission */ $permission = AccountPermissionMapper::get()->where('id', (int) $request->getData('id'))->execute(); @@ -1491,7 +1491,7 @@ final class ApiController extends Controller * * @since 1.0.0 */ - public function apiAddGroupPermission(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + public function apiAddGroupPermission(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void { if (((int) $request->getData('permissionref')) === 3) { // admin group cannot be deleted @@ -1533,7 +1533,7 @@ final class ApiController extends Controller * * @since 1.0.0 */ - public function apiAddAccountPermission(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + public function apiAddAccountPermission(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void { if (!empty($val = $this->validatePermissionCreate($request))) { $response->set('permission_create', new FormValidation($val)); @@ -1637,7 +1637,7 @@ final class ApiController extends Controller * * @since 1.0.0 */ - public function apiAccountPermissionUpdate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + public function apiAccountPermissionUpdate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void { /** @var AccountPermission $old */ $old = clone AccountPermissionMapper::get()->where('id', (int) $request->getData('id'))->execute(); @@ -1662,7 +1662,7 @@ final class ApiController extends Controller * * @since 1.0.0 */ - public function apiGroupPermissionUpdate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + public function apiGroupPermissionUpdate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void { /** @var GroupPermission $old */ $old = clone GroupPermissionMapper::get()->where('id', (int) $request->getData('id'))->execute(); @@ -1721,7 +1721,7 @@ final class ApiController extends Controller * * @since 1.0.0 */ - public function apiAddGroupToAccount(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + public function apiAddGroupToAccount(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void { $account = (int) $request->getData('account'); $groups = \array_map('intval', $request->getDataList('igroup-idlist')); @@ -1743,7 +1743,7 @@ final class ApiController extends Controller * * @since 1.0.0 */ - public function apiAddAccountToGroup(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + public function apiAddAccountToGroup(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void { $group = (int) $request->getData('group'); $accounts = \array_map('intval', $request->getDataList('iaccount-idlist')); @@ -1765,7 +1765,7 @@ final class ApiController extends Controller * * @since 1.0.0 */ - public function apiDeleteGroupFromAccount(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + public function apiDeleteGroupFromAccount(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void { $account = (int) $request->getData('account'); $groups = \array_map('intval', $request->getDataList('igroup-idlist')); @@ -1794,7 +1794,7 @@ final class ApiController extends Controller * * @since 1.0.0 */ - public function apiDeleteAccountFromGroup(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + public function apiDeleteAccountFromGroup(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void { $group = (int) $request->getData('group'); $accounts = \array_map('intval', $request->getDataList('iaccount-idlist')); @@ -1823,7 +1823,7 @@ final class ApiController extends Controller * * @since 1.0.0 */ - public function apiReInit(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + public function apiReInit(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void { $directories = \glob(__DIR__ . '/../../../Web/*', \GLOB_ONLYDIR); @@ -1871,7 +1871,7 @@ final class ApiController extends Controller * @since 1.0.0 * @todo implement */ - public function apiCheckForUpdates(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + public function apiCheckForUpdates(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void { // this is only a temp... in the future this logic will change but for current purposes this is the easiest way to implement updates $request = new HttpRequest(new HttpUri('https://api.github.com/repos/Karaka/Updates/contents')); @@ -1923,7 +1923,7 @@ final class ApiController extends Controller * * @since 1.0.0 */ - public function apiUpdateFile(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + public function apiUpdateFile(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void { $this->apiUpdate([[ 'name' => 'temp.json', diff --git a/Controller/BackendController.php b/Controller/BackendController.php index 226c748..097c014 100755 --- a/Controller/BackendController.php +++ b/Controller/BackendController.php @@ -58,7 +58,7 @@ final class BackendController extends Controller * * @since 1.0.0 */ - public function viewForgot(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface + public function viewForgot(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface { return new View(); } @@ -77,7 +77,7 @@ final class BackendController extends Controller * * @since 1.0.0 */ - public function viewEmptyCommand(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface + public function viewEmptyCommand(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); $view->setTemplate('/Modules/Admin/Theme/Cli/empty-command'); @@ -96,7 +96,7 @@ final class BackendController extends Controller * * @since 1.0.0 */ - public function viewAccountList(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface + public function viewAccountList(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); $view->setTemplate('/Modules/Admin/Theme/Backend/accounts-list'); @@ -124,7 +124,7 @@ final class BackendController extends Controller * * @since 1.0.0 */ - public function viewAccountSettings(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface + public function viewAccountSettings(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); $view->setTemplate('/Modules/Admin/Theme/Backend/accounts-single'); @@ -138,6 +138,7 @@ final class BackendController extends Controller $view->addData('account', $account); + /** @var \Modules\Admin\Models\AccountPermission[] $permissions */ $permissions = AccountPermissionMapper::getAll()->where('account', (int) $request->getData('id'))->execute(); if (!isset($permissions) || $permissions instanceof NullAccountPermission) { @@ -180,7 +181,7 @@ final class BackendController extends Controller * * @since 1.0.0 */ - public function viewAccountCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface + public function viewAccountCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); $view->setTemplate('/Modules/Admin/Theme/Backend/accounts-create'); @@ -200,7 +201,7 @@ final class BackendController extends Controller * * @since 1.0.0 */ - public function viewGroupList(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface + public function viewGroupList(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); $view->setTemplate('/Modules/Admin/Theme/Backend/groups-list'); @@ -231,7 +232,7 @@ final class BackendController extends Controller * * @since 1.0.0 */ - public function viewGroupSettings(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface + public function viewGroupSettings(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); $view->setTemplate('/Modules/Admin/Theme/Backend/groups-single'); @@ -240,9 +241,10 @@ final class BackendController extends Controller GroupMapper::get()->with('accounts')->where('id', (int) $request->getData('id'))->execute() ); + /** @var null|\Modules\Admin\Models\GroupPermission[] $permissions */ $permissions = GroupPermissionMapper::getAll()->where('group', (int) $request->getData('id'))->execute(); - if (!isset($permissions) || $permissions instanceof NullGroupPermission) { + if ($permissions === null || $permissions instanceof NullGroupPermission) { $permissions = []; } elseif (!\is_array($permissions)) { $permissions = [$permissions]; @@ -286,7 +288,7 @@ final class BackendController extends Controller * * @since 1.0.0 */ - public function viewGroupCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface + public function viewGroupCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); $view->setTemplate('/Modules/Admin/Theme/Backend/groups-create'); @@ -309,7 +311,7 @@ final class BackendController extends Controller * * @since 1.0.0 */ - public function viewModuleList(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface + public function viewModuleList(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); $view->setTemplate('/Modules/Admin/Theme/Backend/modules-list'); @@ -332,7 +334,7 @@ final class BackendController extends Controller * * @since 1.0.0 */ - public function viewModuleInfo(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface + public function viewModuleInfo(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); $view->setTemplate('/Modules/Admin/Theme/Backend/modules-info'); @@ -382,7 +384,7 @@ final class BackendController extends Controller * * @since 1.0.0 */ - public function viewModuleLog(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface + public function viewModuleLog(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); $view->setTemplate('/Modules/Admin/Theme/Backend/modules-log'); @@ -413,7 +415,7 @@ final class BackendController extends Controller * * @since 1.0.0 */ - public function viewModuleRouteList(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface + public function viewModuleRouteList(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); $view->setTemplate('/Modules/Admin/Theme/Backend/modules-route-list'); @@ -462,7 +464,7 @@ final class BackendController extends Controller * * @since 1.0.0 */ - public function viewModuleHookList(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface + public function viewModuleHookList(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); $view->setTemplate('/Modules/Admin/Theme/Backend/modules-hook-list'); @@ -511,13 +513,14 @@ final class BackendController extends Controller * * @since 1.0.0 */ - public function viewModuleSettings(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface + public function viewModuleSettings(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1000105001, $request, $response)); $id = $request->getData('id') ?? ''; + /** @var \Model\Setting[] $settings */ $settings = SettingMapper::getAll()->where('module', $id)->execute(); if (!($settings instanceof NullSetting)) { $view->setData('settings', !\is_array($settings) ? [$settings] : $settings); diff --git a/Controller/CliController.php b/Controller/CliController.php index 6198e8d..cb085e1 100755 --- a/Controller/CliController.php +++ b/Controller/CliController.php @@ -46,7 +46,7 @@ final class CliController extends Controller * @since 1.0.0 * @codeCoverageIgnore */ - public function viewEmptyCommand(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface + public function viewEmptyCommand(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); @@ -73,7 +73,7 @@ final class CliController extends Controller * @since 1.0.0 * @codeCoverageIgnore */ - public function cliRunEvent(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface + public function cliRunEvent(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface { $event = $this->app->eventManager->triggerSimilar( $request->getData('g'), diff --git a/Models/AccountMapper.php b/Models/AccountMapper.php index e74634d..3657b3a 100755 --- a/Models/AccountMapper.php +++ b/Models/AccountMapper.php @@ -130,6 +130,7 @@ class AccountMapper extends DataMapperFactory $account = self::get()->with('groups')->with('groups/permissions')->with('l11n')->where('id', $id)->execute(); $groups = \array_keys($account->getGroups()); + /** @var \Modules\Admin\Models\GroupPermission[] $groupPermissions */ $groupPermissions = empty($groups) ? [] : GroupPermissionMapper::getAll() @@ -141,6 +142,7 @@ class AccountMapper extends DataMapperFactory $account->addPermissions(\is_array($permission) ? $permission : [$permission]); } + /** @var \Modules\Admin\Models\AccountPermission[] $accountPermission */ $accountPermissions = AccountPermissionMapper::getAll() ->where('account', $id) ->where('element', null) @@ -178,9 +180,9 @@ class AccountMapper extends DataMapperFactory ->from('account') ->where('account_login', '=', $login) ->execute() - ->fetchAll(); + ?->fetchAll(); - if (!isset($result[0])) { + if ($result === null || !isset($result[0])) { return LoginReturnType::WRONG_USERNAME; } diff --git a/Models/AccountPermissionMapper.php b/Models/AccountPermissionMapper.php index f04088e..f43e2cb 100755 --- a/Models/AccountPermissionMapper.php +++ b/Models/AccountPermissionMapper.php @@ -44,7 +44,7 @@ final class AccountPermissionMapper extends DataMapperFactory 'account_permission_component' => ['name' => 'account_permission_component', 'type' => 'int', 'internal' => 'component'], 'account_permission_hasread' => ['name' => 'account_permission_hasread', 'type' => 'bool', 'internal' => 'hasRead'], 'account_permission_hascreate' => ['name' => 'account_permission_hascreate', 'type' => 'bool', 'internal' => 'hasCreate'], - 'account_permission_hasmodify' => ['name' => 'account_permission_hasmodify', 'type' => 'bool', 'internal' => 'hasCreate'], + 'account_permission_hasmodify' => ['name' => 'account_permission_hasmodify', 'type' => 'bool', 'internal' => 'hasModify'], 'account_permission_hasdelete' => ['name' => 'account_permission_hasdelete', 'type' => 'bool', 'internal' => 'hasDelete'], 'account_permission_haspermission' => ['name' => 'account_permission_haspermission', 'type' => 'bool', 'internal' => 'hasPermission'], ]; diff --git a/Models/Address.php b/Models/Address.php index a45389f..1ea067a 100755 --- a/Models/Address.php +++ b/Models/Address.php @@ -78,7 +78,15 @@ class Address extends Location { parent::unserialize($serialized); + if (!\is_string($serialized)) { + return; + } + + /** @var array{name:string, addition:string} $data */ $data = \json_decode($serialized, true); + if (!\is_array($data)) { + return; + } $this->name = $data['name']; $this->addition = $data['addition']; diff --git a/Models/GroupMapper.php b/Models/GroupMapper.php index 9c1b5eb..7c596cf 100755 --- a/Models/GroupMapper.php +++ b/Models/GroupMapper.php @@ -135,9 +135,8 @@ final class GroupMapper extends DataMapperFactory $query->where(self::HAS_MANY['accounts']['self'], '=', $group); } - $result = $query->execute() - ->fetchAll(\PDO::FETCH_KEY_PAIR); + $result = $query->execute()?->fetchAll(\PDO::FETCH_KEY_PAIR); - return $result; + return $result === null ? [] : $result; } } diff --git a/Models/GroupPermissionMapper.php b/Models/GroupPermissionMapper.php index 81dd68a..97c71f1 100755 --- a/Models/GroupPermissionMapper.php +++ b/Models/GroupPermissionMapper.php @@ -44,7 +44,7 @@ final class GroupPermissionMapper extends DataMapperFactory 'group_permission_component' => ['name' => 'group_permission_component', 'type' => 'int', 'internal' => 'component'], 'group_permission_hasread' => ['name' => 'group_permission_hasread', 'type' => 'bool', 'internal' => 'hasRead'], 'group_permission_hascreate' => ['name' => 'group_permission_hascreate', 'type' => 'bool', 'internal' => 'hasCreate'], - 'group_permission_hasmodify' => ['name' => 'group_permission_hasmodify', 'type' => 'bool', 'internal' => 'hasCreate'], + 'group_permission_hasmodify' => ['name' => 'group_permission_hasmodify', 'type' => 'bool', 'internal' => 'hasModify'], 'group_permission_hasdelete' => ['name' => 'group_permission_hasdelete', 'type' => 'bool', 'internal' => 'hasDelete'], 'group_permission_haspermission' => ['name' => 'group_permission_haspermission', 'type' => 'bool', 'internal' => 'hasPermission'], ]; diff --git a/Theme/Backend/accounts-single.tpl.php b/Theme/Backend/accounts-single.tpl.php index 389907d..dcf7a6e 100755 --- a/Theme/Backend/accounts-single.tpl.php +++ b/Theme/Backend/accounts-single.tpl.php @@ -289,8 +289,10 @@ echo $this->getData('nav')->render(); ?> + -
+
+
getHtml('Permissions'); ?>