Generator modułów administracyjnych w Symfony nie umożliwia wybrania akcji, które dany moduł ma wykonywać, zawsze dostajemy pełen zestaw CRUD. Czasami zachodzi potrzeba zablokowania niektórych akcji, np. w wypadku logów bezpieczeństwa sens ma jedynie index (przeglądanie listy), a jakakolwiek modyfikacja powinna być zabroniona.
Odnośniki widoczne na liście można łatwo ukryć edytując plik generator.yml
, wystarczy domyślne akcje zastąpić pustymi listami.
generator: param: config: list: title: Permission changes log actions: {} object_actions: {} batch_actions: {} filter: display: [agent_user_name, subject_user_name, permission_name, created_at]
Akcje można jednak dalej wykonywać ręcznie wpisując URL, dlatego należy je zablokować w kontrolerze.
class permission_logActions extends autoPermission_logActions { public function preExecute() { $this->forward404If($this->getActionName() !== 'index', 'Action disabled'); parent::preExecute(); } }