我们使用Mattermost使用“生产Docker”设置,如Mattermost文档中所述。对于身份验证,我们使用GitHub:Enterprise进行联合。
为了设置我们的Mattermost团队,我导入了整个Slack历史记录。这导致了一个问题,即所有尚未通过GitHub:Enterprise登录到Mattermost的人都无法登录。 Mattermost帮助返回了错误消息
“现有用户已经附加到您的gitlab帐户”
如何在不必设置新的Mattermost实例的情况下修复此问题并强制每个人在导入Slack数据之前登录一次?
答案 0 :(得分:0)
为了实现这一点,您需要
ssh
进入Mattermost vm / machine(mattermost docker容器正在运行)。
更改为具有泊坞窗权限的帐户(root;或在Mattermost安装期间设置的帐户;或者......)
使用docker ps
并记下容器mattermostdocker_db
的哈希值。我们假设它以5c23
开头。
运行docker inspect 5c23 | grep IPAddress
。记下容器的IP地址。我们假设它是172.17.0.2
。
确保在运行mattermost / docker的计算机上安装了psql命令行工具。
apt-get install postgresql-client
连接到在docker容器内运行的postgresql的mattermost数据库:
psql -h 172.17.0.2 -p 5432 -d mattermost -U postgres -W
postgres
。验证是否存在包含正确电子邮件的用户帐户。假设有问题的帐户的电子邮件是“john @ example.com”
mattermost-# select email, authdata from users where email = 'john@example.com'
; 连接到GitHub:Enterprise并打开管理控制台。我们假设本地github企业实例位于https://github.example.com
。
单击所有用户,找到无法登录的用户。我们假设github用户名为john
,对应https://github.example.com/john
访问该用户的stafftools用户安全性页面。
点击“审核日志”标题下的“搜索日志”链接。这将打开一个带有查询字段的页面。在此页面上,您将找到该用户的内部github用户编号。注意这个数字。我们假设这个数字是37。
返回psql控制台,使用正确的数字更新用户条目:
update users set authservice = 'gitlab', authdata = '37' where email = 'john@example.com' ;
使用\q
退出psql控制台:
mattermost-# \q
完成即可。用户现在可以使用GitHub登录Mattermost:企业用户身份验证。
;
gitlab
,而不是github
,即使您使用GitHub:Enterprise