Рейтинг:2

Как переключить учетную запись пользователя в drush для проверки разрешений?

флаг ph

Я играю с модулем групп D9 и хочу протестировать контроль доступа в drush, либо используя drush php, либо написав скрипт и используя drush scr.

В drush 8 я всегда использовал drush -u для запуска от имени конкретного пользователя, но эта опция, похоже, исчезла в drush 10.

Какой самый простой способ запустить drush от имени конкретного пользователя или переключить пользователя в drush php или скрипт?

Изменить: я работаю над этим, вместо этого вызывая конечные точки json:api, но было бы неплохо проверить это в drush.

флаг cn
Я знаю, что вы просите Drush, но стоит отметить, что модуль Devel предоставляет блок для переключения пользователей, который может быть полезен в локальной среде разработки.
Lambic avatar
флаг ph
Да, тестирование в браузере — это нормально, но мне особенно нужно протестировать на уровне cli или API.
Рейтинг:0
флаг cn

Привет. В вашем тесте вы можете использовать службу переключения учетных записей @ core/lib/Drupal/Core/Session/AccountSwitcherInterface.php

Например,

// Здесь вы можете переключиться на любой тип учетной записи.
$this->accountSwitcher->switchTo(new UserSession(['uid' => 1]));

// Используя try-catch-finally, мы гарантируем, что никогда не оставим его случайно.
пытаться {
  // Все, что вы хотите протестировать
}
поймать (\ Исключение $ e) {
  $this->logger->get(self::MODULE_NAME)->error($e->getMessage());
} Ну наконец то {
  // Убедитесь, что мы всегда переключаемся назад. Очень важно, если вы используете u1.
  $this->accountSwitcher->switchBack();
}

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.