class UserMatcher in Linkit 8.4
Same name and namespace in other branches
- 8.5 src/Plugin/Linkit/Matcher/UserMatcher.php \Drupal\linkit\Plugin\Linkit\Matcher\UserMatcher
 
Plugin annotation
@Matcher(
  id = "entity:user",
  target_entity = "user",
  label = @Translation("User"),
  provider = "user"
)
  Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
- class \Drupal\linkit\MatcherBase implements ContainerFactoryPluginInterface, MatcherInterface
- class \Drupal\linkit\ConfigurableMatcherBase implements ConfigurableMatcherInterface
- class \Drupal\linkit\Plugin\Linkit\Matcher\EntityMatcher uses MatcherTokensTrait
- class \Drupal\linkit\Plugin\Linkit\Matcher\UserMatcher
 
 
 - class \Drupal\linkit\Plugin\Linkit\Matcher\EntityMatcher uses MatcherTokensTrait
 
 - class \Drupal\linkit\ConfigurableMatcherBase implements ConfigurableMatcherInterface
 
 - class \Drupal\linkit\MatcherBase implements ContainerFactoryPluginInterface, MatcherInterface
 
 - class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
 
Expanded class hierarchy of UserMatcher
File
- src/
Plugin/ Linkit/ Matcher/ UserMatcher.php, line 20  - Contains \Drupal\linkit\Plugin\Linkit\Matcher\UserMatcher.
 
Namespace
Drupal\linkit\Plugin\Linkit\MatcherView source
class UserMatcher extends EntityMatcher {
  /**
   * {@inheritdoc}
   */
  public function getSummary() {
    $summery = parent::getSummary();
    $roles = !empty($this->configuration['roles']) ? $this->configuration['roles'] : [
      'None',
    ];
    $summery[] = $this
      ->t('Role filter: @role_filter', [
      '@role_filter' => implode(', ', $roles),
    ]);
    $summery[] = $this
      ->t('Include blocked users: @include_blocked', [
      '@include_blocked' => $this->configuration['include_blocked'] ? $this
        ->t('Yes') : $this
        ->t('No'),
    ]);
    return $summery;
  }
  /**
   * {@inheritdoc}
   */
  public function defaultConfiguration() {
    return parent::defaultConfiguration() + [
      'roles' => [],
      'include_blocked' => FALSE,
    ];
  }
  /**
   * {@inheritdoc}
   */
  public function calculateDependencies() {
    return parent::calculateDependencies() + [
      'module' => [
        'user',
      ],
    ];
  }
  /**
   * {@inheritdoc}
   */
  public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
    $form = parent::buildConfigurationForm($form, $form_state);
    $form['roles'] = array(
      '#type' => 'checkboxes',
      '#title' => $this
        ->t('Restrict to the selected roles'),
      '#options' => array_diff_key(user_role_names(TRUE), array(
        RoleInterface::AUTHENTICATED_ID => RoleInterface::AUTHENTICATED_ID,
      )),
      '#default_value' => $this->configuration['roles'],
      '#description' => $this
        ->t('If none of the checkboxes is checked, allow all roles.'),
      '#element_validate' => [
        [
          get_class($this),
          'elementValidateFilter',
        ],
      ],
    );
    $form['include_blocked'] = [
      '#title' => t('Include blocked user'),
      '#type' => 'checkbox',
      '#default_value' => $this->configuration['include_blocked'],
      '#description' => t('In order to see blocked users, the requesting user must also have permissions to do so.'),
    ];
    return $form;
  }
  /**
   * {@inheritdoc}
   */
  public function submitConfigurationForm(array &$form, FormStateInterface $form_state) {
    parent::submitConfigurationForm($form, $form_state);
    $this->configuration['roles'] = $form_state
      ->getValue('roles');
    $this->configuration['include_blocked'] = $form_state
      ->getValue('include_blocked');
  }
  /**
   * {@inheritdoc}
   */
  protected function buildEntityQuery($match) {
    $query = parent::buildEntityQuery($match);
    $match = $this->database
      ->escapeLike($match);
    // The user entity don't specify a label key so we have to do it instead.
    $query
      ->condition('name', '%' . $match . '%', 'LIKE');
    // Filter by role.
    if (!empty($this->configuration['roles'])) {
      $query
        ->condition('roles', $this->configuration['roles'], 'IN');
    }
    if ($this->configuration['include_blocked'] !== TRUE || !$this->currentUser
      ->hasPermission('administer users')) {
      $query
        ->condition('status', 1);
    }
    return $query;
  }
}Members
| 
            Name | 
                  Modifiers | Type | Description | Overrides | 
|---|---|---|---|---|
| 
            DependencySerializationTrait:: | 
                  protected | property | An array of entity type IDs keyed by the property name of their storages. | |
| 
            DependencySerializationTrait:: | 
                  protected | property | An array of service IDs keyed by property name used for serialization. | |
| 
            DependencySerializationTrait:: | 
                  public | function | 1 | |
| 
            DependencySerializationTrait:: | 
                  public | function | 2 | |
| 
            EntityMatcher:: | 
                  protected | property | The current user. | |
| 
            EntityMatcher:: | 
                  protected | property | The database connection. | |
| 
            EntityMatcher:: | 
                  protected | property | The entity manager. | |
| 
            EntityMatcher:: | 
                  protected | property | The module handler service. | |
| 
            EntityMatcher:: | 
                  protected | property | The target entity type id | |
| 
            EntityMatcher:: | 
                  protected | function | Builds the description string used in the match array. | 2 | 
| 
            EntityMatcher:: | 
                  protected | function | Builds the group string used in the match array. | |
| 
            EntityMatcher:: | 
                  protected | function | Builds the label string used in the match array. | |
| 
            EntityMatcher:: | 
                  protected | function | Builds the path string used in the match array. | 1 | 
| 
            EntityMatcher:: | 
                  public static | function | 
            Creates an instance of the plugin. Overrides ContainerFactoryPluginInterface:: | 
                  |
| 
            EntityMatcher:: | 
                  public static | function | Form element validation handler; Filters the #value property of an element. | |
| 
            EntityMatcher:: | 
                  public | function | 
            Gets an array with search matches that will be presented in the autocomplete
widget. Overrides MatcherInterface:: | 
                  |
| 
            EntityMatcher:: | 
                  public | function | 
            Form validation handler. Overrides PluginFormInterface:: | 
                  |
| 
            EntityMatcher:: | 
                  public | function | 
            Constructs a \Drupal\Component\Plugin\PluginBase object. Overrides MatcherBase:: | 
                  |
| 
            MatcherBase:: | 
                  protected | property | The matcher ID. | |
| 
            MatcherBase:: | 
                  protected | property | The weight of the matcher compared to others in a matcher collection. | |
| 
            MatcherBase:: | 
                  public | function | 
            Gets this plugin's configuration. Overrides ConfigurablePluginInterface:: | 
                  |
| 
            MatcherBase:: | 
                  public | function | 
            Returns the matcher label. Overrides MatcherInterface:: | 
                  |
| 
            MatcherBase:: | 
                  public | function | 
            Returns the unique ID representing the matcher. Overrides MatcherInterface:: | 
                  |
| 
            MatcherBase:: | 
                  public | function | 
            Returns the weight of the matcher. Overrides MatcherInterface:: | 
                  |
| 
            MatcherBase:: | 
                  public | function | 
            Sets the configuration for this plugin instance. Overrides ConfigurablePluginInterface:: | 
                  |
| 
            MatcherBase:: | 
                  public | function | 
            Sets the weight for the matcher. Overrides MatcherInterface:: | 
                  |
| 
            MatcherTokensTrait:: | 
                  public | function | Gets all available tokens. | |
| 
            MatcherTokensTrait:: | 
                  public | function | Inserts a form element with a list of available tokens. | |
| 
            MessengerTrait:: | 
                  protected | property | The messenger. | 29 | 
| 
            MessengerTrait:: | 
                  public | function | Gets the messenger. | 29 | 
| 
            MessengerTrait:: | 
                  public | function | Sets the messenger. | |
| 
            PluginBase:: | 
                  protected | property | Configuration information passed into the plugin. | 1 | 
| 
            PluginBase:: | 
                  protected | property | The plugin implementation definition. | 1 | 
| 
            PluginBase:: | 
                  protected | property | The plugin_id. | |
| 
            PluginBase:: | 
                  constant | A string which is used to separate base plugin IDs from the derivative ID. | ||
| 
            PluginBase:: | 
                  public | function | 
            Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface:: | 
                  |
| 
            PluginBase:: | 
                  public | function | 
            Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface:: | 
                  |
| 
            PluginBase:: | 
                  public | function | 
            Gets the definition of the plugin implementation. Overrides PluginInspectionInterface:: | 
                  3 | 
| 
            PluginBase:: | 
                  public | function | 
            Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface:: | 
                  |
| 
            PluginBase:: | 
                  public | function | Determines if the plugin is configurable. | |
| 
            StringTranslationTrait:: | 
                  protected | property | The string translation service. | 1 | 
| 
            StringTranslationTrait:: | 
                  protected | function | Formats a string containing a count of items. | |
| 
            StringTranslationTrait:: | 
                  protected | function | Returns the number of plurals supported by a given language. | |
| 
            StringTranslationTrait:: | 
                  protected | function | Gets the string translation service. | |
| 
            StringTranslationTrait:: | 
                  public | function | Sets the string translation service to use. | 2 | 
| 
            StringTranslationTrait:: | 
                  protected | function | Translates a string to the current language or to a given language. | |
| 
            UserMatcher:: | 
                  public | function | 
            Form constructor. Overrides EntityMatcher:: | 
                  |
| 
            UserMatcher:: | 
                  protected | function | 
            Builds an EntityQuery to get entities. Overrides EntityMatcher:: | 
                  |
| 
            UserMatcher:: | 
                  public | function | 
            Calculates dependencies for the configured plugin. Overrides MatcherBase:: | 
                  |
| 
            UserMatcher:: | 
                  public | function | 
            Gets default configuration for this plugin. Overrides EntityMatcher:: | 
                  |
| 
            UserMatcher:: | 
                  public | function | 
            Returns the summarized configuration of the matcher. Overrides EntityMatcher:: | 
                  |
| 
            UserMatcher:: | 
                  public | function | 
            Form submission handler. Overrides EntityMatcher:: |