entityType = $entity_type; } /** * {@inheritdoc} */ public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) { return new static( $configuration, $plugin_id, $plugin_definition, $container->get('entity.manager')->getDefinition('domain') ); } /** * {@inheritdoc} */ public function defaultConfiguration() { return [ 'domain_id' => '', ]; } /** * {@inheritdoc} */ public function buildConfigurationForm(array $form, FormStateInterface $form_state) { $domains = \Drupal::entityTypeManager()->getStorage('domain')->loadOptionsList(); $form['domain_id'] = [ '#type' => 'checkboxes', '#title' => t('Domain'), '#options' => $domains, '#default_value' => $this->configuration['id'], '#required' => TRUE, ]; return $form; } /** * {@inheritdoc} */ public function submitConfigurationForm(array &$form, FormStateInterface $form_state) { $this->configuration['domain_id'] = $form_state->getValue('domain_id'); } /** * {@inheritdoc} */ public function calculateDependencies() { if (!empty($this->configuration['domain_id'])) { $prefix = $this->entityType->getConfigPrefix() . '.'; $this->addDependency('config', $prefix . $this->configuration['domain_id']); } return $this->dependencies; } /** * {@inheritdoc} */ public function access($object, AccountInterface $account = NULL, $return_as_object = FALSE) { /** @var \Drupal\user\UserInterface $object */ // @TODO: fix this logic. $access = $object->access('update', $account, TRUE); return $return_as_object ? $access : $access->isAllowed(); } }