Mattermost“现有用户已经附加到您的gitlab帐户”

时间:2016-06-15 16:12:42

标签: github docker github-enterprise mattermost

我们使用Mattermost使用“生产Docker”设置,如Mattermost文档中所述。对于身份验证,我们使用GitHub:Enterprise进行联合。

为了设置我们的Mattermost团队,我导入了整个Slack历史记录。这导致了一个问题,即所有尚未通过GitHub:Enterprise登录到Mattermost的人都无法登录。 Mattermost帮助返回了错误消息

“现有用户已经附加到您的gitlab帐户”

如何在不必设置新的Mattermost实例的情况下修复此问题并强制每个人在导入Slack数据之前登录一次?

1 个答案:

答案 0 :(得分:0)

先决条件

为了实现这一点,您需要

  • GitHub:企业管理员权限
  • 在Mattermost计算机上,可以是root权限,也可以是允许控制docker的帐户,如果没有安装psql,则可以使用安装psql命令行工具的方法。

步骤

  1. ssh进入Mattermost vm / machine(mattermost docker容器正在运行)。

  2. 更改为具有泊坞窗权限的帐户(root;或在Mattermost安装期间设置的帐户;或者......)

  3. 使用docker ps并记下容器mattermostdocker_db的哈希值。我们假设它以5c23开头。

  4. 运行docker inspect 5c23 | grep IPAddress。记下容器的IP地址。我们假设它是172.17.0.2

  5. 确保在运行mattermost / docker的计算机上安装了psql命令行工具。

    • 关于debian:apt-get install postgresql-client
  6. 连接到在docker容器内运行的postgresql的mattermost数据库:

    • psql -h 172.17.0.2 -p 5432 -d mattermost -U postgres -W
    • (默认?)密码似乎是postgres
  7. 验证是否存在包含正确电子邮件的用户帐户。假设有问题的帐户的电子邮件是“john @ example.com”

    • mattermost-# select email, authdata from users where email = 'john@example.com';
  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 = 'john@example.com' ;
  13. 使用\q退出psql控制台:

    • mattermost-# \q
  14. 完成即可。用户现在可以使用GitHub登录Mattermost:企业用户身份验证。

  15. 备注

    • 不要忘记使用;
    • 完成psql中的每个语句
    • 它是gitlab,而不是github,即使您使用GitHub:Enterprise
    • 使用Mattermost 3.0,GitHub:Enterprise 2.6.2
    • 进行测试