Mattermost Существующий пользователь уже привязан к вашей учетной записи gitlab

Мы используем Mattermost, используя настройку «Production Docker», как описано в документации Mattermost. Для аутентификации мы используем федерацию с помощью GitHub:Enterprise.

Чтобы настроить нашу команду Mattermost, я импортировал всю историю Slack. Это привело к тому, что все, кто еще не вошел в Mattermost через GitHub:Enterprise, не смогли войти в систему. Mattermost любезно вернул сообщение об ошибке

«Существующий пользователь уже привязан к вашей учетной записи gitlab»

Как я могу решить эту проблему без необходимости настраивать новый экземпляр Mattermost и заставлять всех входить в систему один раз перед импортом данных Slack?


person Wilbert    schedule 15.06.2016    source источник


Ответы (1)


Предпосылки

Для того, чтобы это работало, вам нужно

  • GitHub: разрешения администратора предприятия
  • На машине Mattermost либо права root, либо учетная запись, которой разрешено управлять докером, и, если psql не установлен, способ установить инструмент командной строки psql.

Шаги

  1. ssh в Mattermost vm/machine (где работают наиболее важные докер-контейнеры).

  2. Перейдите на учетную запись с разрешениями Docker (root или учетная запись, которую вы настроили во время установки Mattermost, или ...)

  3. Используйте docker ps и обратите внимание на хэш контейнера mattermostdocker_db. Предположим, что он начинается с 5c23.

  4. Выполнить docker inspect 5c23 | grep IPAddress. Обратите внимание на IP-адрес контейнера. Предположим, что это 172.17.0.2.

  5. Убедитесь, что инструмент командной строки psql установлен на компьютере, на котором запущено приложение Mattermost/docker.

    • On debian: apt-get install postgresql-client
  6. Подключитесь к самой важной базе данных postgresql, работающей внутри контейнера докеров:

    • psql -h 172.17.0.2 -p 5432 -d mattermost -U postgres -W
    • Пароль (по умолчанию?) кажется postgres.
  7. Убедитесь, что существует учетная запись пользователя с правильным адресом электронной почты. Предположим, что адрес электронной почты учетной записи, в которой возникла проблема, — «[email protected]».

  8. Подключитесь к GitHub:Enterprise и откройте консоль администратора. Предположим, что локальный корпоративный экземпляр github находится по адресу https://github.example.com.

  9. Нажмите на всех пользователей и найдите пользователя, который не может войти в систему. Мы предполагаем, что имя пользователя github — john, что соответствует https://github.example.com/john.

  10. Посетите страницу безопасности пользователя stafftools для этого пользователя.

  11. Щелкните ссылку "Журналы поиска" под заголовком "Журналы аудита". Откроется страница с полем запроса. На этой странице вы найдете внутренний номер пользователя github для этого пользователя. Обратите внимание на этот номер. Предположим, что число равно 37.

  12. Вернувшись в консоль psql, обновите запись пользователя, указав правильный номер:

    • update users set authservice = 'gitlab', authdata = '37' where email = '[email protected]' ;
  13. Выйдите из консоли psql с помощью \q:

    • mattermost-# \q
  14. Готово. Теперь пользователь может войти в Mattermost с аутентификацией пользователя GitHub: Enterprise.

Заметки

  • Не забывайте завершать каждое выражение в psql символом ;.
  • Это gitlab, а не github, даже если вы используете GitHub:Enterprise
  • Протестировано с Mattermost 3.0, GitHub: Enterprise 2.6.2
person Wilbert    schedule 15.06.2016