用户未晋升至 TL2

我遇到了一个奇怪的情况:用户没有被自动晋升为 TL2。我知道可以手动将 TL1 改为 TL2,但我想知道 Discourse 为何会遗漏这个特定用户,问题出在哪里。

Discourse 的 TL2 要求没有任何变更。
查看用户资料时,我发现所有要求都已满足。
该用户未被封禁或禁言,也从未有过此类情况;这个账号相当古老,几乎是在一个运行了四年的论坛创建初期就注册的。
我使用的是 2.5.0.beta6 版本,但这个“问题”显然已经存在一段时间了。

我试图寻找某个页面来确认自己是否遗漏了什么,但类似页面目前仅对 TL3 开放(路径为 /admin/users/ID/LOGIN/tl3_requirements)。

我的问题是:是否有快速方法检查其他信任级别的要求?我应该去哪里查看问题所在?说实话,手动更改信任级别只是最后的“权宜之计”,因为这可能会引起其他用户的疑问:他们的信任级别是否正确?

要检查用户是否符合 TL2 资格,请在您的站点设置页面的搜索框中输入 ‘tl2 requires’。这将显示您站点 TL2 要求的列表。您可以通过查看用户管理页面的“活动”部分,将这些设置与用户的活动进行对比。

对于未能获得提升的用户,需要检查的一点是确认其信任级别是否曾在过去被锁定。信任级别被锁定的用户,在其管理用户页面的“权限”部分会显示一个“解锁信任级别”按钮:

我已经做过这些了。我原本设想有一个类似于 TL3 要求的页面,但针对 TL1 和/或 TL2,这样作为管理员我可以更快地检查,而无需查阅 Discourse 设置。

哎呀,我忘了添加那条信息,是我的疏忽。该用户的信任等级并未被锁定,据我回忆,过去也从未被锁定过。所以这不是问题所在。

能否截图您的设置及其活动?

TL2 设置(这是全部吗?还是我漏掉了什么?

用户活动

用户权限

我遇到了完全相同的问题。该用户几乎符合 TL3 的资格(根据 TL2 缺失的要求报告),但尚未自动晋升为 TL2。

@Aylin,在你的实例中你找到问题所在了吗?

我的情况与 yours 类似,他的信任等级未锁定,且通过直观对比统计信息,所有要求(均为默认设置)均已满足。

不过,在我的实例中,所有用户都是通过 SSO 创建的,我使用该用户作为分析参考——因为我确信他应该自动晋升——但我的社区中只有 2 名 TL2 用户,而 996 名用户为 TL1,这个比例非常奇怪。

这确实看起来很可疑!

如果你前往 /logs,是否有任何高度重复的错误?

谢谢这么快回复 :slight_smile:

只有一个已记录的错误:

Log

Message

ActiveRecord::StatementInvalid (PG::SyntaxError: ERROR: tsquery 中的语法错误:“‘Melhorias gerais no Compara Jogos’:*A & ‘’:*B”
)
lib/freedom_patches/fast_pluck.rb:41:in select_raw' lib/freedom_patches/fast_pluck.rb:61:in pluck’
app/models/topic.rb:621:in similar_to' app/controllers/similar_topics_controller.rb:25:in index’
app/controllers/application_controller.rb:340:in block in with_resolved_locale' app/controllers/application_controller.rb:340:in with_resolved_locale’
lib/middleware/omniauth_bypass_middleware.rb:68:in call' lib/content_security_policy/middleware.rb:12:in call’
lib/middleware/anonymous_cache.rb:336:in call' config/initializers/008-rack-cors.rb:25:in call’
config/initializers/100-quiet_logger.rb:19:in call' config/initializers/100-silence_logger.rb:31:in call’
lib/middleware/enforce_hostname.rb:22:in call' lib/middleware/request_tracker.rb:176:in call’

Backtrace

rack-mini-profiler (2.0.4) lib/patches/db/pg.rb:72:in exec_params' rack-mini-profiler (2.0.4) lib/patches/db/pg.rb:72:in exec_params’
activerecord (6.0.3.2) lib/active_record/connection_adapters/postgresql_adapter.rb:675:in block (2 levels) in exec_no_cache' activesupport (6.0.3.2) lib/active_support/dependencies/interlock.rb:48:in block in permit_concurrent_loads’
activesupport (6.0.3.2) lib/active_support/concurrency/share_lock.rb:187:in yield_shares' activesupport (6.0.3.2) lib/active_support/dependencies/interlock.rb:47:in permit_concurrent_loads’
activerecord (6.0.3.2) lib/active_record/connection_adapters/postgresql_adapter.rb:674:in block in exec_no_cache' activerecord (6.0.3.2) lib/active_record/connection_adapters/abstract_adapter.rb:722:in block (2 levels) in log’
activesupport (6.0.3.2) lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in block (2 levels) in synchronize' activesupport (6.0.3.2) lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in handle_interrupt’

Env

HTTP HOSTS: forum.comparajogos.com.br

我不确定这是否有关联。

这两个 TL2 用户是我(管理员)和另一位用户。这意味着 TL2 自动晋升对我们两人都生效了,因为我从未手动更改过信任级别。

该未自动晋升用户的最低统计指标是主题回复数为 3,这正是所需的数量,但他最后一次回复发生在 9 月 18 日。

如果 Discourse 能够提供一个类似“模拟运行”的功能,用于展示更改用户信任等级的逻辑,并附带某种反馈机制,那将非常棒。这样,用户可以自行运行触发该逻辑的操作,查看自己是否满足或未满足相关要求(以及在存在某些错误的情况下,是否所有要求均已满足)。

没有,如果我没记错的话,我在日志里也没发现什么有趣的内容。最后,我手动将该特定用户的 TL 进行了更改,并阻止了 TL2,这样论坛甚至不会尝试将其改回 TL1。

这些账户是很久以前创建的(比如几年前),还是最近创建的(比如一个月前)?
我怀疑可能存在迁移问题、早期版本的 Discourse,或者网站处于引导模式。

类似的功能目前已在 TL3 中提供。
如果我记得没错,该功能仅对工作人员开放。
依我之见,TL1 到 TL3 的要求清单应对所有用户可见,以提高透明度。
这将减少工作人员的工作量,也能减少用户询问剩余要求的次数。
总体而言,自助服务更具可扩展性。

我遇到了同样的问题,在我的情况下是从 TL0 升级到 TL1。我主要是在新用户身上注意到这个问题,并且自己也用新账户进行了测试。

这是我刚刚创建的测试账户,但在我检查过的几乎所有实际账户中,情况都是一样的。

阅读这篇帖子:https://meta.discourse.org/t/when-does-user-trust-level-promotion-occur/29845,似乎之前自动升级也出现过问题。这里是否也是这种情况?

我的设置略有不同,详情将在下一帖中说明,因为我的信任等级只允许我每篇帖子上传一张图片 :grin:

——编辑,因为我无法发布另一条回复:
将最小阅读时间设置为 0 后,一个新测试用户在阅读了规定数量的帖子后确实获得了升级。然而,符合相同条件的现有用户仍然停留在 TL0。

我对 TL1 设置进行了轻微修改:

另外:
image