# 用户信任等级在解锁时重置为零

**URL:** <https://meta.discourse.org/t/user-trust-level-resets-to-zero-when-unlocked/255444>\
**Category:** Bug\
**Created:** [2023年二月17日 07:00 UTC](https://meta.discourse.org/t/user-trust-level-resets-to-zero-when-unlocked/255444 "2023-02-17T07:00:10Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![ljpp](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ljpp/32/96506_2.png) [@ljpp](https://meta.discourse.org/u/ljpp)\
**Post date:** [2023年二月17日 07:00 UTC](https://meta.discourse.org/t/user-trust-level-resets-to-zero-when-unlocked/255444/1 "2023-02-17T07:00:10Z")

</div>

1. 该用户已被锁定在 TL3 多时。
2. 现在他因行为不端而受到了一些标记，因此我解锁了 TL。
3. TL 降至零，而不是预期的 TL2。

CDCK SaaS 上的最新 Discourse 版本。

 ![Screenshot_20230217_085810_Chrome](https://global.discourse-cdn.com/meta/original/4X/3/4/2/342b2ce88c89a58dc5350c1c87a89af4e9374fc3.jpeg)

---

<div class="post-metadata">

**Author:** ![ljpp](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ljpp/32/96506_2.png) [@ljpp](https://meta.discourse.org/u/ljpp)\
**Post date:** [2023年二月17日 07:21 UTC](https://meta.discourse.org/t/user-trust-level-resets-to-zero-when-unlocked/255444/2 "2023-02-17T07:21:21Z")

</div>

更新：

看起来这只是一个小的UI故障。几分钟后，TL自动调整到了预期的TL2级别。

---

<div class="post-metadata">

**Author:** ![Canapin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/canapin/32/119591_2.png) [@Canapin](https://meta.discourse.org/u/Canapin)\
**Post date:** [2023年二月20日 19:12 UTC](https://meta.discourse.org/t/user-trust-level-resets-to-zero-when-unlocked/255444/3 "2023-02-20T19:12:10Z")

</div>

我可以重现该问题。

1. 锁定用户的信任级别（必须高于 0）

2. 解锁其信任级别

3. 信任级别显示为 0。

如果我使用 API 显示用户信任级别，它会返回 0。

但是，用户可以执行仅允许信任级别为 1 的操作，例如发送私人消息。似乎触发此类操作会重新启用用户的正确信任级别。

这有点奇怪，我会再深入研究一下。

---

<div class="post-metadata">

**Author:** ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)\
**Post date:** [2023年二月20日 20:34 UTC](https://meta.discourse.org/t/user-trust-level-resets-to-zero-when-unlocked/255444/4 "2023-02-20T20:34:37Z")

</div>

我也是。当我清理我的 TL3 时，它发生了，解锁将它们降到了 TL0。

---

<div class="post-metadata">

**Author:** ![Canapin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/canapin/32/119591_2.png) [@Canapin](https://meta.discourse.org/u/Canapin)\
**Post date:** [2023年二月20日 21:06 UTC](https://meta.discourse.org/t/user-trust-level-resets-to-zero-when-unlocked/255444/5 "2023-02-20T21:06:04Z")

</div>

我已经调查了这个问题。

信任级别确实设置为 0，即使在数据库中也是如此，但奇怪的是，这并没有以任何方式影响用户。用户继续根据其原始信任级别查看和使用论坛。

一旦用户执行某个操作（打开主题、发布消息…），信任级别就会在数据库和界面中恢复到其初始值。

这不太可能导致任何问题，但我还是向团队报告了此 bug。

---

<div class="post-metadata">

**Author:** ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)\
**Post date:** [2023年三月1日 01:38 UTC](https://meta.discourse.org/t/user-trust-level-resets-to-zero-when-unlocked/255444/8 "2023-03-01T01:38:11Z")

</div>

我认为我已经根据以下内容修复了此问题：

> <https://github.com/discourse/discourse/pull/20492>
>
> The recalculate code was never firing cause TrustLevel.calculate unconditionally…
> returned a trust level. (albeit a wrong one)
> 
> New code ensures we only bypass promotion checks for cases where trust level
> is locked.
> 
> see: https://meta.discourse.org/t/user-trust-level-resets-to-zero-when-unlocked/255444

我觉得这可能在我们修复了有关组 TL 授予的一些问题后出现了回归。

尚未合并……但希望很快就能合并。

---

<div class="post-metadata">

**Author:** ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)\
**Post date:** [2023年三月1日 21:00 UTC](https://meta.discourse.org/t/user-trust-level-resets-to-zero-when-unlocked/255444/11 "2023-03-01T21:00:39Z")

</div>

此主题已在 16 小时后自动关闭。不再允许回复。
