0

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

为了建立我们的 Mattermost 团队,我导入了整个 Slack 历史记录。这导致所有尚未通过 GitHub:Enterprise 登录 Mattermost 的人都无法登录的问题。Mattermost 有用地返回了错误消息

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

如何解决此问题,而无需设置新的 Mattermost 实例并强制每个人在导入 Slack 数据之前登录一次?

4

1 回答 1

1

先决条件

为了让它工作,你需要

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

脚步

  1. ssh进入 Mattermost 虚拟机/机器(mattermost docker 容器正在运行的地方)。

  2. 更改为具有 docker 权限的帐户(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 的最重要的数据库:

    • 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. 退出 psql 控制台\q

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

笔记

  • 不要忘记在 psql 中使用 a 来完成每个语句;
  • gitlab,不是github,即使你使用 GitHub:Enterprise
  • 使用 Mattermost 3.0 测试,GitHub:Enterprise 2.6.2
于 2016-06-15T16:47:41.880 回答