//Obtener usuario actual
$user = \Drupal::currentUser();
//Verificar si el usuario tiene un permiso
\Drupal::currentUser()->hasPermission("id_del_permiso")
$language = \Drupal::languageManager()->getCurrentLanguage()->getId();
$user = \Drupal\user\Entity\User::create();
//Mandatory settings
$user->setPassword('clave');
$user->enforceIsNew();
$user->setEmail('email');
$user->setUsername('nombre_usuario');
//Configuraciones opcionales
$user->set("init", 'email');
$user->set("langcode", $language);
$user->set("preferred_langcode", $language);
$user->set("preferred_admin_langcode", $language);
$user->activate();
//Guardar usuario
$res = $user->save();
$account = user_load_by_name('nombre_usuario');
user_user_login($account);
user_login_finalize($account);
user_logout();
$idsUsers = \Drupal::entityQuery('user')->execute();
$users = User::loadMultiple($idsUsers);
foreach ($users as $user) {
foreach ($user->get("roles") as $rol) {
if ($rol->getValue()['target_id'] == "client_manager") {
...
}
}
}
$user = User::load($idUser);
user_login_finalize($user);
$role = \Drupal\user\Entity\Role::load('authenticated');
$role->grantPermission('access comments');
$role->save();
Módulo User https://api.drupal.org/api/drupal/core!modules!user!user.module/8
User.php https://api.drupal.org/api/drupal/core!modules!user!src!Entity!User.php/class/User/8
Roles de usuario https://api.drupal.org/api/drupal/core!core.api.php/group/user_api/8