Проверка существования пользователя в Rake

Всем привет! Я сейчас работаю над discourse-k8s-operator, где реализовал действие, требующее проверки существования пользователя. Однако похоже, что существующей rake-задачи для этого нет (мы также заметили, что отсутствуют и некоторые другие rake-задачи, которые, как мы ожидали, должны быть).

Для наших целей мы внесли патч в Discourse, но это кажется небольшим изменением, которое можно было бы включить в основную ветку! Я отправил PR, жду ваших комментариев!

Если я правильно понял вашу идею, глядя на репозиторий GitHub, почему бы просто не использовать DISCOURSE_DEVELOPER_EMAIL, чтобы при создании пользователя с таким адресом электронной почты он автоматически становился администратором?

Извините, я не совсем понимаю.

Мы хотим создать набор действий, которые пользователь может выполнять при развёртывании Discourse с помощью чарма. Одно из таких действий — создание учётной записи пользователя.

Поскольку это поведение реализовано через rake-задачу, оно изолировано от кода оператора, который может лишь запускать эту задачу и передавать ввод через stdin (discourse-k8s-operator/src/charm.py at main · canonical/discourse-k8s-operator · GitHub).

Если пользователь уже существует, rake-задача задаст дополнительные вопросы, например, следует ли перезаписать пароль (discourse/lib/tasks/admin.rake at main · discourse/discourse · GitHub). Это означает, что одного stdin уже недостаточно.

Мы внесли исправления в rake-задачу users:exists, которые были отправлены в виде PR для решения этой проблемы: теперь мы можем проверить, существует ли пользователь, и при необходимости скорректировать ввод через stdin.