コード例 #1
0
 /**
  * Adds options to the actions
  *
  * @param ConfigureActionEvent $event
  */
 public function setDefaultOptions(ConfigureActionEvent $event)
 {
     $resolver = $event->getOptionsResolver();
     $options = $event->getAction()->getConfiguration()->getOptions();
     if (isset($options['acl'])) {
         $resolver->setDefaults(['acl' => $options['acl']]);
     } else {
         $resolver->setDefined(['acl']);
     }
     $resolver->setDefined(['acl_suffix']);
     $resolver->setNormalizer('acl', function ($actionOptions, $acl) use($options) {
         if (null === $acl && isset($options['acl_prefix']) && isset($actionOptions['acl_suffix'])) {
             return $options['acl_prefix'] . $options['acl_separator'] . $actionOptions['acl_suffix'];
         }
         return $acl;
     });
     $customEntityName = $event->getAction()->getConfiguration()->getName();
     $normalizeActions = function ($options, $actionTypes) use($customEntityName) {
         return array_filter($actionTypes, function ($actionType) use($customEntityName) {
             $action = $this->actionFactory->getAction($customEntityName, $actionType);
             $options = $action->getOptions();
             return !isset($options['acl']) || $this->securityFacade->isGranted($options['acl']);
         });
     };
     if ('index' === $event->getAction()->getType()) {
         $resolver->setNormalizer('row_actions', $normalizeActions);
         $resolver->setNormalizer('mass_actions', $normalizeActions);
     }
 }
コード例 #2
0
 /**
  * Adds options to the actions
  *
  * @param ConfigureActionEvent $event
  */
 public function setActionOptions(ConfigureActionEvent $event)
 {
     if (!$event->getAction() instanceof AbstractFormAction) {
         return;
     }
     $confOptions = $event->getAction()->getConfiguration()->getOptions();
     $resolver = $event->getOptionsResolver();
     if (isset($confOptions['form_type'])) {
         $resolver->setDefaults(['form_type' => $confOptions['form_type']]);
     }
     if (isset($confOptions['form_options'])) {
         $resolver->setDefaults(['form_options' => $confOptions['form_options']]);
     }
     if (isset($confOptions['form_template'])) {
         $resolver->setDefaults(['template' => $confOptions['form_template']]);
     }
 }