受邀用户未成功注册为正式用户

您好,我有几位处于暂存状态的用户未能注册为用户。这些用户已添加个人资料图片并发布内容。如果这有影响,这两位暂存用户最初都是通过电子邮件添加到某个组的,且他们的邮箱地址一致。

2 个赞

你能复现这个问题吗,@justin

@debryc 这是我尝试的步骤:

  1. 向群组邮箱发送邮件以创建暂存账户
  2. 将该用户作为管理员添加到群组中
  3. 使用相同的邮箱注册并选择相同的用户名

这并未复现该问题。您的流程是否有任何不同之处?

4 个赞
  1. 管理员将电子邮件添加到群发消息

  1. 待处理用户创建账户

  2. 待处理用户点击激活链接,现在可以执行所有操作

  3. 管理员查找用户

  4. 用户仍处于待处理状态

1 个赞

这里的标题具有误导性。您的意思是您向某个话题_邀请_了一个电子邮件地址,而不是有人通过邮件提交来创建话题,而 99% 的测试用户都来自后者。

我会进行编辑以使其更清晰。@justin 有一个更好的测试场景。我希望从一开始就能表述清楚,以节省大家的时间。

2 个赞

感谢澄清标题!为造成的困惑表示歉意。

这个问题是否可以复现?

我在本地开发环境的最新版本上测试过,用户已按预期处于未归档且活跃状态。

@debryc 你运行的是哪个版本的 Discourse?

不过有一个奇怪的现象:即使用户在创建账户之前被邀请加入某个私信(PM),且该私信尚未阅读,系统也不会显示相关通知。

3 个赞

哈哈!我们当前运行的是 v2.4.0.beta1 +8。我尝试更新到最新版本,但正在等待我们的技术志愿者通过 SSH 登录到我们的 Web 服务器。给自己提个醒:每当出现错误时,先检查 Discourse 是否有更新。 更新完成后我会告诉你结果!

3 个赞

你好 Justin,我们现在使用的是最新版本的 Discourse,但用户仍然被标记为“暂存”。

以下是发生情况的视频。(请静音观看,以避免听到打字声)

1 个赞

@justin 同时,有没有办法手动取消暂存某人?我会将此作为临时措施。

你可以通过 Rails 命令来实现:

cd /var/discourse
./launcher enter app
rails c
User.find_by_email("itsmedebryc@yahoo.com").update(staged: false)
8 个赞

谢谢,这个方法有效!

与此同时,我又进行了一次更新,@justin,我可能遇到了你提到的那个 bug。

这次我完全按照之前的步骤操作,但在注册账户后,我没有收到激活链接,而是收到了欢迎消息!

我请求 Discourse 重新发送激活链接,结果成功了。

我的用户账户仍然处于待激活状态。

1 个赞

您需要稍等一下,因为 Justin 本周正在参加会议。

5 个赞

好的,我今天尝试根据 @debryc 提供的步骤复现此问题。@dax 与我分享了一些想法,并可能按照本帖子中给出的步骤成功复现了该问题:Staged invited user did not become registered user - #5 by debryc

@dax 在我们的基础设施中的测试站点上,通过以下步骤成功复现了该问题,并额外增加了以下内容:

  • 在创建账户并输入信息时:
    • 使用相同的电子邮件地址
    • 使用与发送暂存用户时创建的用户名和姓名不同的用户名和姓名
  • 按正常流程创建账户

我在 Meta 站点上尝试了此操作,但未能复现该问题。

我将在我们托管的测试站点上尝试复现,以进一步隔离问题。

7 个赞

我尝试在我们托管的一个全新的测试站点上复现此问题,但未能复现。

@debryc 您是否安装了任何非官方插件?

2 个赞

@debryc 我们可以在某些站点设置被修改的网站上复现该问题,但在全新安装的环境中无法复现。您的站点是否有特定的设置被修改?使用了哪些插件?任何进一步的信息都将有助于我们缩小问题范围。

4 个赞

主题组件:博客文章样式、DiscoTOC、discourse-category-banners、Discourse Kanban、标签图标。

移动端 CSS

.login-button {
span {display: none}
&:after {content: “注册 / 登录”}
}

通用 CSS

// 横幅格式
#banner {
border: 6px solid rgba(140, 194, 82, 1);
// border-radius: 0;
box-shadow: none;
padding: 20px;
max-height: inherit;
// background: url(https://discourse.nycedu.org/uploads/default/original/1X/279dd1c1049bf67d3472d0927c7230aac3aa3d9a.png) no-repeat;
// background-size: cover;
background-color: rgba(255, 255, 255, 0);
background-blend-mode: color;
}

// 响应式 Google 日历 iframe
.googleCalendar{
position: relative;
height: 0;
width: 100%;
padding-bottom: 50%;
}

.googleCalendar iframe{
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}

大量文本自定义

用户字段:添加了两个文本用户字段

表情符号:添加了一个自定义表情符号

插件:docker_manager

基础设置:

登录

用户


Screenshot%20of%20Google%20Chrome%20(9-12-19%2C%203-24-11%20PM)


群组

发帖






邮件




Screenshot%20of%20Google%20Chrome%20(9-12-19%2C%203-28-23%20PM)



文件


信任等级:无变更

安全


Screenshot%20of%20Google%20Chrome%20(9-12-19%2C%203-31-28%20PM)

Onebox

垃圾邮件

速率限制:无变更

开发者:无变更

法律条款

备份:无变更

搜索
Screenshot%20of%20Google%20Chrome%20(9-12-19%2C%203-33-46%20PM)

其他:无变更

用户偏好设置:



API:无变更

用户 API:无变更

标签
Screenshot%20of%20Google%20Chrome%20(9-12-19%2C%203-35-14%20PM)


Screenshot%20of%20Google%20Chrome%20(9-12-19%2C%203-35-20%20PM)

仪表板:无变更

插件


4 个赞

感谢提供信息 @debryc——我们会深入调查,尽力把情况弄清楚一些。

2 个赞

这个问题有点棘手!我们最终确认是 discourse_narrative_bot welcome_post_type 站点设置被配置为“向所有新用户发送包含快速入门指南的欢迎消息”。

感谢您提供的所有有用信息!我们会尽快修复这个问题。

7 个赞

因此,确切的复现步骤如下:

  • 确保 discourse_narrative_bot_welcome_post_type 设置为“向所有新用户发送包含快速入门指南的欢迎消息”。

然后:

  • 使用一个未绑定现有账户的邮箱地址发送邀请消息
  • 现在您可以在网站上看到该暂存用户,进入用户管理页面,该用户仅处于暂存状态但未激活,这符合预期
  • 在隐私浏览窗口中打开论坛
  • 点击“创建新账户”
  • 使用第一步中的邮箱地址创建一个新账户
  • 在隐私窗口中激活该账户并继续访问网站
  • 作为站点管理员,刷新该暂存用户的用户页面,账户状态仍显示为暂存但已激活

这听起来正确吗 @tshenry

7 个赞