From 2e15cba910b91eee997c484839fef13b519194e6 Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Tue, 31 Jul 2018 20:11:35 +0200 Subject: [PATCH] Implement account/group relation and depth handling --- Controller.php | 9 +++++---- Models/Group.php | 20 ++++++++++++++++++++ Models/GroupMapper.php | 15 +++++++++++++++ Theme/Backend/groups-single.tpl.php | 7 +++---- 4 files changed, 43 insertions(+), 8 deletions(-) diff --git a/Controller.php b/Controller.php index 1e1c823..5c5fdcc 100644 --- a/Controller.php +++ b/Controller.php @@ -39,6 +39,7 @@ use phpOMS\Module\WebInterface; use phpOMS\System\MimeType; use phpOMS\Utils\Parser\Markdown\Markdown; use phpOMS\Views\View; +use phpOMS\DataStorage\Database\RelationType; /** * Admin controller class. @@ -203,7 +204,7 @@ final class Controller extends ModuleAbstract implements WebInterface $view->setTemplate('/Modules/Admin/Theme/Backend/accounts-list'); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1000104001, $request, $response)); - $view->setData('list:elements', AccountMapper::getNewest(50)); + $view->setData('list:elements', AccountMapper::getNewest(50, null, RelationType::NONE)); $view->setData('list:count', 1); return $view; @@ -235,7 +236,7 @@ final class Controller extends ModuleAbstract implements WebInterface $view->setTemplate('/Modules/Admin/Theme/Backend/accounts-single'); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1000104001, $request, $response)); - $view->addData('account', AccountMapper::get((int) $request->getData('id'))); + $view->addData('account', AccountMapper::get((int) $request->getData('id'), RelationType::ALL, null, 2)); $permissions = AccountPermissionMapper::getFor((int) $request->getData('id'), 'account'); @@ -306,7 +307,7 @@ final class Controller extends ModuleAbstract implements WebInterface $view->setTemplate('/Modules/Admin/Theme/Backend/groups-list'); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1000103001, $request, $response)); - $view->setData('list:elements', GroupMapper::getAll()); + $view->setData('list:elements', GroupMapper::getAll(RelationType::NONE)); return $view; } @@ -337,7 +338,7 @@ final class Controller extends ModuleAbstract implements WebInterface $view->setTemplate('/Modules/Admin/Theme/Backend/groups-single'); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1000103001, $request, $response)); - $view->addData('group', GroupMapper::get((int) $request->getData('id'))); + $view->addData('group', GroupMapper::get((int) $request->getData('id'), RelationType::ALL, null, 2)); $permissions = GroupPermissionMapper::getFor((int) $request->getData('id'), 'group'); diff --git a/Models/Group.php b/Models/Group.php index 09aa265..e95d11e 100644 --- a/Models/Group.php +++ b/Models/Group.php @@ -48,6 +48,14 @@ class Group extends \phpOMS\Account\Group */ protected $descriptionRaw = ''; + /** + * Accounts + * + * @var array + * @since 1.0.0 + */ + protected $accounts = []; + /** * Constructor * @@ -121,4 +129,16 @@ class Group extends \phpOMS\Account\Group { return $this->descriptionRaw; } + + /** + * Get accounts + * + * @return array Accounts + * + * @since 1.0.0 + */ + public function getAccounts() : array + { + return $this->accounts; + } } diff --git a/Models/GroupMapper.php b/Models/GroupMapper.php index db5dfcf..63f7fe8 100644 --- a/Models/GroupMapper.php +++ b/Models/GroupMapper.php @@ -65,4 +65,19 @@ class GroupMapper extends DataMapperAbstract * @since 1.0.0 */ protected static $createdAt = 'group_created'; + + /** + * Has many relation. + * + * @var array> + * @since 1.0.0 + */ + protected static $hasMany = [ + 'accounts' => [ + 'mapper' => AccountMapper::class, + 'table' => 'account_group', + 'dst' => 'account_group_group', + 'src' => 'account_group_account', + ], + ]; } diff --git a/Theme/Backend/groups-single.tpl.php b/Theme/Backend/groups-single.tpl.php index 99dc294..d40e96c 100644 --- a/Theme/Backend/groups-single.tpl.php +++ b/Theme/Backend/groups-single.tpl.php @@ -16,7 +16,7 @@ */ $group = $this->getData('group'); $permissions = $this->getData('permissions'); -$accounts = $this->getData('accounts'); +$accounts = $group->getAccounts(); echo $this->getData('nav')->render(); ?> @@ -66,11 +66,10 @@ echo $this->getData('nav')->render(); ?> getHtml('ID', 0, 0); ?> Name - $value) : $c++; ?> + $value) : $c++; ?> - - + getName1(); ?> getHtml('Empty', 0, 0); ?>