Добавление пользователя Redmine завершается неудачно (электронная почта уже используется), но ни один пользователь не использует эту электронную почту - PullRequest
0 голосов
/ 18 марта 2019

Должен заметить, что этот пользователь существовал в прошлом, ушел, а затем вернулся для повторной активации.

В то же время я унаследовал эту систему Redmine, поэтому не знаю всех подробностей (читай: причуды)

===

При попытке создатьuser name.last@student.email.edu, Redmine не может добавить пользователя, говоря The email is already in use.

Однако поиск пользователей Redmine не показывает такого пользователя и не может найти такой адрес электронной почты.

При поиске в Redmine как MY имени пользователя, так и моего адреса электронной почты - оба подходят, поэтому я думаю, что я делаю поиск правильно.

Пользователи Redmine проверяются по домену Samba Active Directory (не локально).

Учетная запись пользователя в Samba Active Directory выглядит нормально.

1 Ответ

1 голос
/ 18 марта 2019

У одного пользователя может быть несколько адресов электронной почты, лучший способ разрешить эту ситуацию - либо искать этого пользователя через консоль ruby, либо с помощью какого-либо инструмента запросов к базе данных SQL.

Консольный подход:

Чтобы активировать консоль ruby, просто на вашем сервере Redmine перейдите через терминал или cmd в Windows к папке установки Redmine и введите rails console , вам может потребоваться добавить RAILS_ENV = production, еслиОбязательно.

EmailAddress.find_by(address: "my@address.com")

Замените my@address.com на адрес, который вы ищете, или

Это вернул бы результат как:

#<EmailAddress id: 3, user_id: 1, address: "my@address.com"...

Чем в следующем запросеВы можете получить точный идентификатор пользователя, используя user_id из предыдущего запроса:

User.find_by(id:id_from_previous_query)

Просто замените id_from_previous_query на правильный идентификатор, перезапущенный в предыдущем запросе.

Подход к базе данных:

Адреса электронной почты расположены в таблице базы данных email_addresses.

Ниже приведен SQL-код, который вы можете запустить, если вы установили Redmine с MySql / MariaDb, просто rзаменить% search% на электронную почту или часть электронной почты, которую вы ищете

select login,firstname,lastname,address from users left join email_addresses on users.id=email_addresses.user_id where email_addresses.address like '%search%'

Я также создал предложение по функциям на основе вашего запроса здесь: https://www.redmine.org/issues/31043

...