From 2d0f06f6f669453bb9cff58d1d251092430ff273 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sun, 4 Feb 2018 20:57:10 -0500 Subject: [PATCH] feat: Blacklist Crud.LookupAction by default Closes #141 --- docs/_partials/pages/index/buttons.rst | 4 ++++ src/Listener/ViewListener.php | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/docs/_partials/pages/index/buttons.rst b/docs/_partials/pages/index/buttons.rst index f35a980a..9c8d8a54 100644 --- a/docs/_partials/pages/index/buttons.rst +++ b/docs/_partials/pages/index/buttons.rst @@ -94,6 +94,10 @@ Crud action classes are mapped but should not all be shown on the main UI. $action = $this->Crud->action(); $action->config('scaffold.actions_blacklist', ['add', 'delete']); +By default, we blacklist the action which is mapped to ``Crud.LookupAction``. +As this action is meant to be used solely for autocompletion, it *cannot* be removed +from the ``scaffold.actions_blacklist`` list. + Action Groups ~~~~~~~~~~~~~ diff --git a/src/Listener/ViewListener.php b/src/Listener/ViewListener.php index bb784c8f..62763a2f 100644 --- a/src/Listener/ViewListener.php +++ b/src/Listener/ViewListener.php @@ -479,6 +479,11 @@ protected function _getAllowedActions() $blacklist = (array)$this->_action()->getConfig('scaffold.actions_blacklist'); $blacklist = array_combine($blacklist, $blacklist); + foreach ($this->_crud()->getConfig('actions') as $action => $config) { + if ($config['className'] === 'Crud.Lookup') { + $blacklist[$action] = $action; + } + } return array_diff_key($allActions, $blacklist); }