This commit is contained in:
Dennis Eichhorn 2017-10-07 22:58:39 +02:00
parent eeea5b0b2e
commit e3970e3e53
5 changed files with 38 additions and 19 deletions

View File

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

View File

@ -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.
*

View File

@ -14,6 +14,6 @@
declare(strict_types=1);
namespace Modules\Admin\Models;
class NullAccountPermission extends Group
class NullAccountPermission extends AccountPermission
{
}

View File

@ -67,12 +67,13 @@ echo $this->getData('nav')->render(); ?>
<thead>
<tr>
<td><?= $this->getHtml('ID', 0, 0); ?>
<td>Name
<td class="wf-100"><?= $this->getHtml('Name') ?>
<tbody>
<?php $c = 0; foreach ([] as $key => $value) : $c++; ?>
<tr>
<td>
<td>
<?php $c = 0; $groups = $account->getGroups(); foreach ($groups as $key => $value) : $c++;
$url = \phpOMS\Uri\UriFactory::build('{/base}/{/lang}/backend/admin/group/settings?{?}&id=' . $value->getId()); ?>
<tr data-href="<?= $url; ?>">
<td><a href="<?= $url; ?>"><?= $this->printHtml($value->getId()); ?></a>
<td><a href="<?= $url; ?>"><?= $this->printHtml($value->getName()); ?></a>
<?php endforeach; ?>
<?php if($c === 0) : ?>
<tr><td colspan="2" class="empty"><?= $this->getHtml('Empty', 0, 0); ?>
@ -118,11 +119,11 @@ echo $this->getData('nav')->render(); ?>
<td><?= $value->getElement(); ?>
<td><?= $value->getComponent(); ?>
<td>
<?= \phpOMS\Account\PermissionType::CREATE | $permission === $permission ? 'C' : ''; ?>
<?= \phpOMS\Account\PermissionType::READ | $permission === $permission ? 'R' : ''; ?>
<?= \phpOMS\Account\PermissionType::MODIFY | $permission === $permission ? 'U' : ''; ?>
<?= \phpOMS\Account\PermissionType::DELETE | $permission === $permission ? 'D' : ''; ?>
<?= \phpOMS\Account\PermissionType::PERMISSION | $permission === $permission ? 'P' : ''; ?>
<?= (\phpOMS\Account\PermissionType::CREATE | $permission) === $permission ? 'C' : ''; ?>
<?= (\phpOMS\Account\PermissionType::READ | $permission) === $permission ? 'R' : ''; ?>
<?= (\phpOMS\Account\PermissionType::MODIFY | $permission) === $permission ? 'U' : ''; ?>
<?= (\phpOMS\Account\PermissionType::DELETE | $permission) === $permission ? 'D' : ''; ?>
<?= (\phpOMS\Account\PermissionType::PERMISSION | $permission) === $permission ? 'P' : ''; ?>
<?php endforeach; ?>
<?php if($c === 0) : ?>
<tr><td colspan="8" class="empty"><?= $this->getHtml('Empty', 0, 0); ?>

View File

@ -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(); ?>
<td><?= $value->getElement(); ?>
<td><?= $value->getComponent(); ?>
<td>
<?= \phpOMS\Account\PermissionType::CREATE | $permission === $permission ? 'C' : ''; ?>
<?= \phpOMS\Account\PermissionType::READ | $permission === $permission ? 'R' : ''; ?>
<?= \phpOMS\Account\PermissionType::MODIFY | $permission === $permission ? 'U' : ''; ?>
<?= \phpOMS\Account\PermissionType::DELETE | $permission === $permission ? 'D' : ''; ?>
<?= \phpOMS\Account\PermissionType::PERMISSION | $permission === $permission ? 'P' : ''; ?>
<?= (\phpOMS\Account\PermissionType::CREATE | $permission) === $permission ? 'C' : ''; ?>
<?= (\phpOMS\Account\PermissionType::READ | $permission) === $permission ? 'R' : ''; ?>
<?= (\phpOMS\Account\PermissionType::MODIFY | $permission) === $permission ? 'U' : ''; ?>
<?= (\phpOMS\Account\PermissionType::DELETE | $permission) === $permission ? 'D' : ''; ?>
<?= (\phpOMS\Account\PermissionType::PERMISSION | $permission) === $permission ? 'P' : ''; ?>
<?php endforeach; ?>
<?php if($c === 0) : ?>
<tr><td colspan="8" class="empty"><?= $this->getHtml('Empty', 0, 0); ?>