mirror of
https://github.com/Karaka-Management/oms-Admin.git
synced 2026-02-08 17:18:39 +00:00
Implement permission adding
This commit is contained in:
parent
d24863651d
commit
8664e84d0d
|
|
@ -197,7 +197,7 @@ class Installer extends InstallerAbstract
|
|||
`account_permission_account` int(11) NOT NULL,
|
||||
`account_permission_unit` int(11) DEFAULT NULL,
|
||||
`account_permission_app` int(11) DEFAULT NULL,
|
||||
`account_permission_module` int(11) DEFAULT NULL,
|
||||
`account_permission_module` varchar(255) DEFAULT NULL,
|
||||
`account_permission_from` int(11) DEFAULT NULL,
|
||||
`account_permission_type` int(11) DEFAULT NULL,
|
||||
`account_permission_element` int(11) DEFAULT NULL,
|
||||
|
|
@ -289,7 +289,7 @@ class Installer extends InstallerAbstract
|
|||
{
|
||||
$sth = $dbPool->get()->con->prepare(
|
||||
'INSERT INTO `' . $dbPool->get()->prefix . 'group` (
|
||||
`group_id`, `group_name`, `group_description`, `group_description_raw`, `group_status`, `group_created`)
|
||||
`group_id`, `group_name`, `group_description`, `group_description_raw`, `group_status`, `group_created`)
|
||||
VALUES (:id, :name, :desc, :desc_raw, :status, :created);'
|
||||
);
|
||||
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ return [
|
|||
],
|
||||
],
|
||||
|
||||
'^.*/api/admin/group.*$' => [
|
||||
'^.*/api/admin/group$' => [
|
||||
[
|
||||
'dest' => '\Modules\Admin\Controller\ApiController:apiGroupCreate',
|
||||
'verb' => RouteVerb::PUT,
|
||||
|
|
@ -90,7 +90,7 @@ return [
|
|||
],
|
||||
],
|
||||
|
||||
'^.*/api/admin/account.*$' => [
|
||||
'^.*/api/admin/account$' => [
|
||||
[
|
||||
'dest' => '\Modules\Admin\Controller\ApiController:apiAccountCreate',
|
||||
'verb' => RouteVerb::PUT,
|
||||
|
|
|
|||
|
|
@ -97,7 +97,7 @@ final class ApiController extends Controller
|
|||
*/
|
||||
public function apiSettingsSet(RequestAbstract $request, ResponseAbstract $response, $data = null) : void
|
||||
{
|
||||
if ($request->getData('settings') === null) {
|
||||
if (empty($request->getData('settings'))) {
|
||||
$data = $request->getLike('(settings_)(.*)');
|
||||
} else {
|
||||
$data = \json_decode((string) $request->getData('settings'), true);
|
||||
|
|
@ -559,7 +559,7 @@ final class ApiController extends Controller
|
|||
$module = $request->getData('module');
|
||||
$status = (int) $request->getData('status');
|
||||
|
||||
if ($module === null || $status === null) {
|
||||
if (empty($module) || empty($status)) {
|
||||
$response->set('module_stutus_update', null);
|
||||
$response->getHeader()->setStatusCode(RequestStatusCode::R_403);
|
||||
return;
|
||||
|
|
@ -613,7 +613,7 @@ final class ApiController extends Controller
|
|||
$permission = $this->createPermissionFromRequest($request);
|
||||
|
||||
$this->app->eventManager->trigger('PRE:Module:Admin-group-permission-create', '', $permission);
|
||||
GroupMapper::create($permission);
|
||||
GroupPermissionMapper::create($permission);
|
||||
$this->app->eventManager->trigger('POST:Module:Admin-group-permission-create', '', $permission);
|
||||
|
||||
$response->getHeader()->set('Content-Type', MimeType::M_JSON, true);
|
||||
|
|
@ -625,6 +625,29 @@ final class ApiController extends Controller
|
|||
]);
|
||||
}
|
||||
|
||||
public function apiAddAccountPermission(RequestAbstract $request, ResponseAbstract $response, $data = null) : void
|
||||
{
|
||||
if (!empty($val = $this->validatePermissionCreate($request))) {
|
||||
$response->set('permission_create', new FormValidation($val));
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$permission = $this->createPermissionFromRequest($request);
|
||||
|
||||
$this->app->eventManager->trigger('PRE:Module:Admin-account-permission-create', '', $permission);
|
||||
AccountPermissionMapper::create($permission);
|
||||
$this->app->eventManager->trigger('POST:Module:Admin-account-permission-create', '', $permission);
|
||||
|
||||
$response->getHeader()->set('Content-Type', MimeType::M_JSON, true);
|
||||
$response->set($request->getUri()->__toString(), [
|
||||
'status' => NotificationLevel::OK,
|
||||
'title' => 'Account',
|
||||
'message' => 'Account permission successfully created.',
|
||||
'response' => $permission->jsonSerialize()
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate permission create request
|
||||
*
|
||||
|
|
@ -637,7 +660,7 @@ final class ApiController extends Controller
|
|||
private function validatePermissionCreate(RequestAbstract $request) : array
|
||||
{
|
||||
$val = [];
|
||||
if (($val['permissionowner'] = !PermissionOwner::isValidValue($request->getData('permissionowner')))
|
||||
if (($val['permissionowner'] = !PermissionOwner::isValidValue((int) $request->getData('permissionowner')))
|
||||
|| ($val['permissionref'] = !\is_numeric($request->getData('permissionref')))
|
||||
) {
|
||||
return $val;
|
||||
|
|
@ -657,13 +680,13 @@ final class ApiController extends Controller
|
|||
*/
|
||||
public function createPermissionFromRequest(RequestAbstract $request) : PermissionAbstract
|
||||
{
|
||||
$permission = $request->getData('permissionowner') === PermissionOwner::GROUP ? new GroupPermission((int) $request->getData('permissionref')) : new AccountPermission((int) $request->getData('permissionref'));
|
||||
$permission->setUnit($request->getData('permissionunit') === null ? null : (int) $request->getData('permissionunit'));
|
||||
$permission->setApp($request->getData('permissionapp') === null ? null : (string) $request->getData('permissionapp'));
|
||||
$permission->setModule($request->getData('permissionmodule') === null ? null : (string) $request->getData('permissionmodule'));
|
||||
$permission->setType($request->getData('permissiontype') === null ? null : (int) $request->getData('permissiontype'));
|
||||
$permission->setElement($request->getData('permissionelement') === null ? null : (int) $request->getData('permissionelement'));
|
||||
$permission->setComponent($request->getData('permissioncomponent') === null ? null : (int) $request->getData('permissioncomponent'));
|
||||
$permission = ((int) $request->getData('permissionowner')) === PermissionOwner::GROUP ? new GroupPermission((int) $request->getData('permissionref')) : new AccountPermission((int) $request->getData('permissionref'));
|
||||
$permission->setUnit(empty($request->getData('permissionunit')) ? null : (int) $request->getData('permissionunit'));
|
||||
$permission->setApp(empty($request->getData('permissionapp')) ? null : (string) $request->getData('permissionapp'));
|
||||
$permission->setModule(empty($request->getData('permissionmodule')) ? null : (string) $request->getData('permissionmodule'));
|
||||
$permission->setType(empty($request->getData('permissiontype')) ? null : (int) $request->getData('permissiontype'));
|
||||
$permission->setElement(empty($request->getData('permissionelement')) ? null : (int) $request->getData('permissionelement'));
|
||||
$permission->setComponent(empty($request->getData('permissioncomponent')) ? null : (int) $request->getData('permissioncomponent'));
|
||||
$permission->setPermission(
|
||||
(int) $request->getData('permissioncreate')
|
||||
| (int) $request->getData('permissionread')
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ class AccountPermission extends PermissionAbstract
|
|||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
*
|
||||
* @param int $group Group id
|
||||
*
|
||||
* @since 1.0.0
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ class AccountPermissionMapper extends DataMapperAbstract
|
|||
'account_permission_account' => ['name' => 'account_permission_account', 'type' => 'int', 'internal' => 'account'],
|
||||
'account_permission_unit' => ['name' => 'account_permission_unit', 'type' => 'int', 'internal' => 'unit'],
|
||||
'account_permission_app' => ['name' => 'account_permission_app', 'type' => 'int', 'internal' => 'app'],
|
||||
'account_permission_module' => ['name' => 'account_permission_module', 'type' => 'int', 'internal' => 'module'],
|
||||
'account_permission_module' => ['name' => 'account_permission_module', 'type' => 'string', 'internal' => 'module'],
|
||||
'account_permission_from' => ['name' => 'account_permission_from', 'type' => 'int', 'internal' => 'from'],
|
||||
'account_permission_type' => ['name' => 'account_permission_type', 'type' => 'int', 'internal' => 'type'],
|
||||
'account_permission_element' => ['name' => 'account_permission_element', 'type' => 'int', 'internal' => 'element'],
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ class GroupPermission extends PermissionAbstract
|
|||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
*
|
||||
* @param int $group Group id
|
||||
*
|
||||
* @since 1.0.0
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ class GroupPermissionMapper extends DataMapperAbstract
|
|||
'group_permission_group' => ['name' => 'group_permission_group', 'type' => 'int', 'internal' => 'group'],
|
||||
'group_permission_unit' => ['name' => 'group_permission_unit', 'type' => 'int', 'internal' => 'unit'],
|
||||
'group_permission_app' => ['name' => 'group_permission_app', 'type' => 'string', 'internal' => 'app'],
|
||||
'group_permission_module' => ['name' => 'group_permission_module', 'type' => 'int', 'internal' => 'module'],
|
||||
'group_permission_module' => ['name' => 'group_permission_module', 'type' => 'string', 'internal' => 'module'],
|
||||
'group_permission_from' => ['name' => 'group_permission_from', 'type' => 'int', 'internal' => 'from'],
|
||||
'group_permission_type' => ['name' => 'group_permission_type', 'type' => 'int', 'internal' => 'type'],
|
||||
'group_permission_element' => ['name' => 'group_permission_element', 'type' => 'int', 'internal' => 'element'],
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ class GroupTagSelectorView extends View
|
|||
$this->id = $data[0];
|
||||
$this->isRequired = $data[1] ?? false;
|
||||
$this->getData('group-selector-popup')->setId($this->id);
|
||||
|
||||
|
||||
return parent::render();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -46,19 +46,19 @@ echo $this->getData('nav')->render(); ?>
|
|||
<span class="input">
|
||||
<button type="button"><i class="fa fa-user"></i></button>
|
||||
<input id="iUsername" name="name" type="text" value="<?= $this->printHtml($account->getName()); ?>" disabled>
|
||||
</span>
|
||||
</span>
|
||||
<tr><td><label for="iName1"><?= $this->getHtml('Name1'); ?></label>
|
||||
<tr><td>
|
||||
<span class="input">
|
||||
<button type="button"><i class="fa fa-user"></i></button>
|
||||
<input id="iName1" name="name1" type="text" value="<?= $this->printHtml($account->getName1()); ?>" required>
|
||||
</span>
|
||||
</span>
|
||||
<tr><td><label for="iName2"><?= $this->getHtml('Name2'); ?></label>
|
||||
<tr><td>
|
||||
<span class="input">
|
||||
<button type="button"><i class="fa fa-user"></i></button>
|
||||
<input id="iName2" name="name2" type="text" value="<?= $this->printHtml($account->getName2()); ?>">
|
||||
</span>
|
||||
</span>
|
||||
<tr><td><label for="iName3"><?= $this->getHtml('Name3'); ?></label>
|
||||
<tr><td>
|
||||
<span class="input">
|
||||
|
|
@ -169,7 +169,7 @@ echo $this->getData('nav')->render(); ?>
|
|||
<section class="box wf-100">
|
||||
<header><h1><?= $this->getHtml('Permissions'); ?></h1></header>
|
||||
<div class="inner">
|
||||
<form id="fAccountAddPermission" action="<?= \phpOMS\Uri\UriFactory::build('/{/lang}/api/admin/group'); ?>" method="post">
|
||||
<form id="fAccountAddPermission" action="<?= \phpOMS\Uri\UriFactory::build('/{/lang}/api/admin/account/permission'); ?>" method="put">
|
||||
<table class="layout wf-100">
|
||||
<tbody>
|
||||
<tr><td><label for="iPermissionUnit"><?= $this->getHtml('Unit'); ?></label>
|
||||
|
|
@ -207,7 +207,7 @@ echo $this->getData('nav')->render(); ?>
|
|||
<label for="iPermissionPermission"><?= $this->getHtml('Permission') ?></label>
|
||||
</span>
|
||||
<tr><td>
|
||||
<input type="hidden" name="permissionref" value="<?= $this->printHtml($group->getId()); ?>">
|
||||
<input type="hidden" name="permissionref" value="<?= $this->printHtml($account->getId()); ?>">
|
||||
<input type="hidden" name="permissionowner" value="<?= \phpOMS\Account\PermissionOwner::GROUP ?>">
|
||||
<input type="submit" value="<?= $this->getHtml('Add', 0, 0); ?>">
|
||||
</table>
|
||||
|
|
|
|||
|
|
@ -134,7 +134,7 @@ echo $this->getData('nav')->render(); ?>
|
|||
<section class="box wf-100">
|
||||
<header><h1><?= $this->getHtml('Permissions'); ?></h1></header>
|
||||
<div class="inner">
|
||||
<form id="fGroupAddPermission" action="<?= \phpOMS\Uri\UriFactory::build('/{/lang}/api/admin/group'); ?>" method="post">
|
||||
<form id="fGroupAddPermission" action="<?= \phpOMS\Uri\UriFactory::build('/{/lang}/api/admin/group/permission'); ?>" method="put">
|
||||
<table class="layout wf-100">
|
||||
<tbody>
|
||||
<tr><td><label for="iPermissionUnit"><?= $this->getHtml('Unit'); ?></label>
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user