You are here

public function AvailableUserRolesService::getAvailableRoles in Multiple Registration 8.2

Same name and namespace in other branches
  1. 8 src/AvailableUserRolesService.php \Drupal\multiple_registration\AvailableUserRolesService::getAvailableRoles()
  2. 3.x src/AvailableUserRolesService.php \Drupal\multiple_registration\AvailableUserRolesService::getAvailableRoles()

Get all roles with ability to create registration page.

Return value

array Returns avaliable roles array.

Throws

\Drupal\Component\Plugin\Exception\InvalidPluginDefinitionException

\Drupal\Component\Plugin\Exception\PluginNotFoundException

1 call to AvailableUserRolesService::getAvailableRoles()
AvailableUserRolesService::getRegistrationPages in src/AvailableUserRolesService.php
Get all role ids for whom registration forms was created.

File

src/AvailableUserRolesService.php, line 52

Class

AvailableUserRolesService
Class AvailableUserRolesService.

Namespace

Drupal\multiple_registration

Code

public function getAvailableRoles() {
  $roles = user_role_names();
  $role_storage = $this->entityTypeManager
    ->getStorage('user_role');
  $admin_role = $role_storage
    ->getQuery()
    ->condition('is_admin', TRUE)
    ->execute();
  $admin_role = reset($admin_role);
  $notAvalible = [
    AccountInterface::ANONYMOUS_ROLE => $roles[AccountInterface::ANONYMOUS_ROLE],
    AccountInterface::AUTHENTICATED_ROLE => $roles[AccountInterface::AUTHENTICATED_ROLE],
  ];

  // Building not available roles list depending on selection of admin role.
  if (isset($roles[$admin_role])) {
    $notAvalible[$admin_role] = $roles[$admin_role];
  }
  return array_diff_assoc($roles, $notAvalible);
}