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\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');

View File

@ -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;
}
}

View File

@ -65,4 +65,19 @@ class GroupMapper extends DataMapperAbstract
* @since 1.0.0
*/
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');
$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(); ?>
<td><?= $this->getHtml('ID', 0, 0); ?>
<td class="wf-100">Name
<tbody>
<?php $c = 0; foreach ([] as $key => $value) : $c++; ?>
<?php $c = 0; foreach ($accounts as $key => $value) : $c++; ?>
<tr>
<td><a href="#"><i class="fa fa-times"></i></a>
<td>
<td>
<td><a href="<?= \phpOMS\Uri\UriFactory::build('/{/lang}/backend/admin/account/settings?{?}&id=' . $value->getId()) ?>"><?= $value->getName1(); ?></a>
<?php endforeach; ?>
<?php if ($c === 0) : ?>
<tr><td colspan="2" class="empty"><?= $this->getHtml('Empty', 0, 0); ?>