From e3970e3e530b21dad4b7762fbca73e7afa4b1c51 Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Sat, 7 Oct 2017 22:58:39 +0200 Subject: [PATCH] Fix #63 --- Controller.php | 8 +++++--- Models/AccountMapper.php | 15 +++++++++++++++ Models/NullAccountPermission.php | 2 +- Theme/Backend/accounts-single.tpl.php | 21 +++++++++++---------- Theme/Backend/groups-single.tpl.php | 11 ++++++----- 5 files changed, 38 insertions(+), 19 deletions(-) diff --git a/Controller.php b/Controller.php index 989dcc9..24791b6 100644 --- a/Controller.php +++ b/Controller.php @@ -20,9 +20,11 @@ use phpOMS\Account\AccountStatus; use phpOMS\Account\AccountType; use Modules\Admin\Models\AccountMapper; use Modules\Admin\Models\AccountPermissionMapper; +use Modules\Admin\Models\NullAccountPermission; use Modules\Admin\Models\Group; use Modules\Admin\Models\GroupMapper; use Modules\Admin\Models\GroupPermissionMapper; +use Modules\Admin\Models\NullGroupPermission; use phpOMS\Account\GroupStatus; use phpOMS\Message\RequestAbstract; use phpOMS\Message\ResponseAbstract; @@ -173,8 +175,8 @@ class Controller extends ModuleAbstract implements WebInterface $view->addData('account', AccountMapper::get((int) $request->getData('id'))); $permissions = AccountPermissionMapper::getFor((int) $request->getData('id'), 'account'); - - if(!isset($permissions)) { + + if(!isset($permissions) || $permissions instanceof NullAccountPermission) { $permissions = []; } elseif(!is_array($permissions)) { $permissions = [$permissions]; @@ -245,7 +247,7 @@ class Controller extends ModuleAbstract implements WebInterface $permissions = GroupPermissionMapper::getFor((int) $request->getData('id'), 'group'); - if(!isset($permissions)) { + if(!isset($permissions) || $permissions instanceof NullGroupPermission) { $permissions = []; } elseif(!is_array($permissions)) { $permissions = [$permissions]; diff --git a/Models/AccountMapper.php b/Models/AccountMapper.php index 4c180d1..d7882ba 100644 --- a/Models/AccountMapper.php +++ b/Models/AccountMapper.php @@ -46,6 +46,21 @@ class AccountMapper extends DataMapperAbstract 'account_created_at' => ['name' => 'account_created_at', 'type' => 'DateTime', 'internal' => 'createdAt'], ]; + /** + * Has many relation. + * + * @var array + * @since 1.0.0 + */ + protected static $hasMany = [ + 'groups' => [ + 'mapper' => GroupMapper::class, + 'table' => 'account_group', + 'dst' => 'account_group_account', + 'src' => 'account_group_group', + ], + ]; + /** * Primary table. * diff --git a/Models/NullAccountPermission.php b/Models/NullAccountPermission.php index 26eb268..0de9640 100644 --- a/Models/NullAccountPermission.php +++ b/Models/NullAccountPermission.php @@ -14,6 +14,6 @@ declare(strict_types=1); namespace Modules\Admin\Models; -class NullAccountPermission extends Group +class NullAccountPermission extends AccountPermission { } diff --git a/Theme/Backend/accounts-single.tpl.php b/Theme/Backend/accounts-single.tpl.php index 7c2c623..3d6d264 100644 --- a/Theme/Backend/accounts-single.tpl.php +++ b/Theme/Backend/accounts-single.tpl.php @@ -67,12 +67,13 @@ echo $this->getData('nav')->render(); ?> getHtml('ID', 0, 0); ?> - Name + getHtml('Name') ?> - $value) : $c++; ?> - - - + getGroups(); foreach ($groups as $key => $value) : $c++; + $url = \phpOMS\Uri\UriFactory::build('{/base}/{/lang}/backend/admin/group/settings?{?}&id=' . $value->getId()); ?> + + printHtml($value->getId()); ?> + printHtml($value->getName()); ?> getHtml('Empty', 0, 0); ?> @@ -118,11 +119,11 @@ echo $this->getData('nav')->render(); ?> getElement(); ?> getComponent(); ?> - - - - - + + + + + getHtml('Empty', 0, 0); ?> diff --git a/Theme/Backend/groups-single.tpl.php b/Theme/Backend/groups-single.tpl.php index 49ca03f..ee58240 100644 --- a/Theme/Backend/groups-single.tpl.php +++ b/Theme/Backend/groups-single.tpl.php @@ -17,6 +17,7 @@ $group = $this->getData('group'); $permissions = $this->getData('permissions'); +$accounts = $this->getData('accounts'); echo $this->getData('nav')->render(); ?> @@ -104,11 +105,11 @@ echo $this->getData('nav')->render(); ?> getElement(); ?> getComponent(); ?> - - - - - + + + + + getHtml('Empty', 0, 0); ?>