Чтобы Drupal поддерживал импортированных пользователей, необходимо доработать существующие импортеры Drupal так, чтобы они заполняли поле import_pass. Базовый импортер уже поддерживает эту функциональность, поэтому вам нужно лишь передать соответствующее поле базы данных в структуру, которую вы передаёте в create_users, с ключом password. Например, импортер VBulletin делает это здесь.
Для импортеров Drupal это реализовано здесь и здесь.
Шаг 2 — это то, что никогда не требовалось и не будет требоваться. Откуда вы это взяли?
Плагин следует включать только после завершения импорта, а во время импорта он должен оставаться отключённым.
Таким образом, правильная последовательность действий следующая:
В контексте нашего обсуждения я ценю ваши ценные отзывы по предыдущему вопросу. Однако меня интересует тема тестирования функциональности моего плагина, чтобы определить, работает ли он корректно. Я следовал инструкциям по установке, как указано, но сталкиваюсь с проблемами: плагин, похоже, не реагирует. Я не уверен, как проверить, правильно ли он запускает скрипт. В частности, я хотел бы понять процесс, с помощью которого проверяется, не пуст ли и не неверен ли первоначальный выбор пароля пользователем, прежде чем переходить к выполнению скрипта плагина.
Я был бы очень признателен, если бы вы могли предоставить мне дополнительные сведения по этому вопросу. Заранее спасибо за помощь.
Плагин работает путем переопределения метода confirm_password? класса User. Сначала он вызывает оригинальную проверку пароля и ничего не делает, если пароль принят основной логикой Discourse.
Если это не так, он проверяет, есть ли у пользователя пользовательское поле import_pass, и если да, использует все доступные алгоритмы для проверки введенного пароля относительно хеша import_pass.
Если совпадение найдено, введенный пароль сохраняется как пароль пользователя, и пользователю разрешается вход.