Commit 386005f4 authored by Dieter Holvoet's avatar Dieter Holvoet
Browse files

Issue #3265504 by DieterHolvoet: Add the option to hide blocked users in the user dashboard block

parent a2f700bd
Loading
Loading
Loading
Loading
+22 −11
Original line number Diff line number Diff line
@@ -77,22 +77,27 @@ class UserBlock extends DashboardBlockBase {
   */
  protected function getUsers() {

    if (isset($this->getConfiguration()['plugin_specific_config']['roles'])) {
      // Get configured roles.
      $configured_roles = $this->getConfiguration()['plugin_specific_config']['roles'];
    $config = $this->getConfiguration()['plugin_specific_config'];
    if (!isset($config['roles'])) {
      return [];
    }

    $configured_roles = $config['roles'];
    $display_blocked = $config['blocked'] ?? true;

    $query = \Drupal::entityQuery('user');
    $query->condition('roles', array_values($configured_roles), 'in');
    $query->sort('access', 'desc');
    if (!$display_blocked) {
      $query->condition('status', 1);
    }

    $result = $query->execute();

      if ($result) {
        return User::loadMultiple($result);
      }
    if ($result === []) {
      return [];
    }

    return [];
    return User::loadMultiple($result);
  }

  /**
@@ -159,6 +164,12 @@ class UserBlock extends DashboardBlockBase {
    // Build Role selection box.
    $form['roles'] = $this->buildRoleSelectBox($form_state, $request, $block_configuration);

    $form['blocked'] = [
      '#type' => 'checkbox',
      '#title' => t('Display blocked users'),
      '#default_value' => $block_configuration['plugin_specific_config']['blocked'] ?? true,
    ];

    return $form;
  }