fix: [navigation:CRUDAction-auditlogs] Make ordering by created field unambigous and hide audit button to non-admin users
parent
7377e77204
commit
bde01882d9
|
@ -125,7 +125,7 @@ class NavigationComponent extends Component
|
||||||
public function genBreadcrumb(): array
|
public function genBreadcrumb(): array
|
||||||
{
|
{
|
||||||
$request = $this->request;
|
$request = $this->request;
|
||||||
$bcf = new BreadcrumbFactory($this->iconToTableMapping);
|
$bcf = new BreadcrumbFactory($this->iconToTableMapping, $this->getController());
|
||||||
$fullConfig = $this->getFullConfig($bcf, $this->request);
|
$fullConfig = $this->getFullConfig($bcf, $this->request);
|
||||||
return $fullConfig;
|
return $fullConfig;
|
||||||
}
|
}
|
||||||
|
@ -191,9 +191,10 @@ class BreadcrumbFactory
|
||||||
private $endpoints = [];
|
private $endpoints = [];
|
||||||
private $iconToTableMapping = [];
|
private $iconToTableMapping = [];
|
||||||
|
|
||||||
public function __construct($iconToTableMapping)
|
public function __construct($iconToTableMapping, $controllerContext)
|
||||||
{
|
{
|
||||||
$this->iconToTableMapping = $iconToTableMapping;
|
$this->iconToTableMapping = $iconToTableMapping;
|
||||||
|
$this->controllerContext = $controllerContext;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function defaultCRUD(string $controller, string $action, array $overrides = []): array
|
public function defaultCRUD(string $controller, string $action, array $overrides = []): array
|
||||||
|
@ -243,7 +244,7 @@ class BreadcrumbFactory
|
||||||
$item = $this->genRouteConfig($controller, $action, [
|
$item = $this->genRouteConfig($controller, $action, [
|
||||||
'label' => __('Audit changes'),
|
'label' => __('Audit changes'),
|
||||||
'icon' => 'history',
|
'icon' => 'history',
|
||||||
'url' => "/audit-logs?model={{model}}&model_id={{id}}&sort=created&direction=desc&embedInModal=1&excludeStats=1&skipTableToolbar=1",
|
'url' => "/audit-logs?model={{model}}&model_id={{id}}&sort=AuditLogs.created&direction=desc&embedInModal=1&excludeStats=1&skipTableToolbar=1",
|
||||||
'url_vars' => ['id' => 'id', 'model' => ['raw' => $table->getAlias()]],
|
'url_vars' => ['id' => 'id', 'model' => ['raw' => $table->getAlias()]],
|
||||||
'textGetter' => !empty($table->getDisplayField()) ? $table->getDisplayField() : 'id',
|
'textGetter' => !empty($table->getDisplayField()) ? $table->getDisplayField() : 'id',
|
||||||
]);
|
]);
|
||||||
|
@ -288,6 +289,8 @@ class BreadcrumbFactory
|
||||||
|
|
||||||
public function setDefaultCRUDForModel($controller)
|
public function setDefaultCRUDForModel($controller)
|
||||||
{
|
{
|
||||||
|
$loggedUser = $this->controllerContext->ACL->getUser();
|
||||||
|
|
||||||
$this->addRoute($controller, 'index', $this->defaultCRUD($controller, 'index'));
|
$this->addRoute($controller, 'index', $this->defaultCRUD($controller, 'index'));
|
||||||
$this->addRoute($controller, 'view', $this->defaultCRUD($controller, 'view'));
|
$this->addRoute($controller, 'view', $this->defaultCRUD($controller, 'view'));
|
||||||
$this->addRoute($controller, 'add', $this->defaultCRUD($controller, 'add'));
|
$this->addRoute($controller, 'add', $this->defaultCRUD($controller, 'add'));
|
||||||
|
@ -307,10 +310,14 @@ class BreadcrumbFactory
|
||||||
|
|
||||||
$this->addAction($controller, 'view', $controller, 'add');
|
$this->addAction($controller, 'view', $controller, 'add');
|
||||||
$this->addAction($controller, 'view', $controller, 'delete');
|
$this->addAction($controller, 'view', $controller, 'delete');
|
||||||
$this->addAction($controller, 'view', $controller, 'audit');
|
if (!empty($loggedUser['role']['perm_admin'])) {
|
||||||
|
$this->addAction($controller, 'view', $controller, 'audit');
|
||||||
|
}
|
||||||
$this->addAction($controller, 'edit', $controller, 'add');
|
$this->addAction($controller, 'edit', $controller, 'add');
|
||||||
$this->addAction($controller, 'edit', $controller, 'delete');
|
$this->addAction($controller, 'edit', $controller, 'delete');
|
||||||
$this->addAction($controller, 'edit', $controller, 'audit');
|
if (!empty($loggedUser['role']['perm_admin'])) {
|
||||||
|
$this->addAction($controller, 'edit', $controller, 'audit');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function get($controller, $action)
|
public function get($controller, $action)
|
||||||
|
|
Loading…
Reference in New Issue