Implement account/group relation and depth handling

This commit is contained in:
Dennis Eichhorn 2018-07-31 20:11:35 +02:00
parent 47c3c27084
commit 2e15cba910
4 changed files with 43 additions and 8 deletions

View File

@ -39,6 +39,7 @@ use phpOMS\Module\WebInterface;
use phpOMS\System\MimeType; use phpOMS\System\MimeType;
use phpOMS\Utils\Parser\Markdown\Markdown; use phpOMS\Utils\Parser\Markdown\Markdown;
use phpOMS\Views\View; use phpOMS\Views\View;
use phpOMS\DataStorage\Database\RelationType;
/** /**
* Admin controller class. * Admin controller class.
@ -203,7 +204,7 @@ final class Controller extends ModuleAbstract implements WebInterface
$view->setTemplate('/Modules/Admin/Theme/Backend/accounts-list'); $view->setTemplate('/Modules/Admin/Theme/Backend/accounts-list');
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1000104001, $request, $response)); $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); $view->setData('list:count', 1);
return $view; return $view;
@ -235,7 +236,7 @@ final class Controller extends ModuleAbstract implements WebInterface
$view->setTemplate('/Modules/Admin/Theme/Backend/accounts-single'); $view->setTemplate('/Modules/Admin/Theme/Backend/accounts-single');
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1000104001, $request, $response)); $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'); $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->setTemplate('/Modules/Admin/Theme/Backend/groups-list');
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1000103001, $request, $response)); $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; return $view;
} }
@ -337,7 +338,7 @@ final class Controller extends ModuleAbstract implements WebInterface
$view->setTemplate('/Modules/Admin/Theme/Backend/groups-single'); $view->setTemplate('/Modules/Admin/Theme/Backend/groups-single');
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1000103001, $request, $response)); $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'); $permissions = GroupPermissionMapper::getFor((int) $request->getData('id'), 'group');

View File

@ -48,6 +48,14 @@ class Group extends \phpOMS\Account\Group
*/ */
protected $descriptionRaw = ''; protected $descriptionRaw = '';
/**
* Accounts
*
* @var array
* @since 1.0.0
*/
protected $accounts = [];
/** /**
* Constructor * Constructor
* *
@ -121,4 +129,16 @@ class Group extends \phpOMS\Account\Group
{ {
return $this->descriptionRaw; return $this->descriptionRaw;
} }
/**
* Get accounts
*
* @return array Accounts
*
* @since 1.0.0
*/
public function getAccounts() : array
{
return $this->accounts;
}
} }

View File

@ -65,4 +65,19 @@ class GroupMapper extends DataMapperAbstract
* @since 1.0.0 * @since 1.0.0
*/ */
protected static $createdAt = 'group_created'; protected static $createdAt = 'group_created';
/**
* Has many relation.
*
* @var array<string, array<string, string>>
* @since 1.0.0
*/
protected static $hasMany = [
'accounts' => [
'mapper' => AccountMapper::class,
'table' => 'account_group',
'dst' => 'account_group_group',
'src' => 'account_group_account',
],
];
} }

View File

@ -16,7 +16,7 @@
*/ */
$group = $this->getData('group'); $group = $this->getData('group');
$permissions = $this->getData('permissions'); $permissions = $this->getData('permissions');
$accounts = $this->getData('accounts'); $accounts = $group->getAccounts();
echo $this->getData('nav')->render(); ?> echo $this->getData('nav')->render(); ?>
@ -66,11 +66,10 @@ echo $this->getData('nav')->render(); ?>
<td><?= $this->getHtml('ID', 0, 0); ?> <td><?= $this->getHtml('ID', 0, 0); ?>
<td class="wf-100">Name <td class="wf-100">Name
<tbody> <tbody>
<?php $c = 0; foreach ([] as $key => $value) : $c++; ?> <?php $c = 0; foreach ($accounts as $key => $value) : $c++; ?>
<tr> <tr>
<td><a href="#"><i class="fa fa-times"></i></a> <td><a href="#"><i class="fa fa-times"></i></a>
<td> <td><a href="<?= \phpOMS\Uri\UriFactory::build('/{/lang}/backend/admin/account/settings?{?}&id=' . $value->getId()) ?>"><?= $value->getName1(); ?></a>
<td>
<?php endforeach; ?> <?php endforeach; ?>
<?php if ($c === 0) : ?> <?php if ($c === 0) : ?>
<tr><td colspan="2" class="empty"><?= $this->getHtml('Empty', 0, 0); ?> <tr><td colspan="2" class="empty"><?= $this->getHtml('Empty', 0, 0); ?>