# 通知声称有 X 个用户待批准，但未找到任何用户

**URL:** <https://meta.discourse.org/t/notification-claims-x-users-for-approval-but-none-are-found/262853>\
**Category:** Bug\
**Created:** [2023年四月25日 17:51 UTC](https://meta.discourse.org/t/notification-claims-x-users-for-approval-but-none-are-found/262853 "2023-04-25T17:51:27Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)\
**Post date:** [2023年四月25日 17:51 UTC](https://meta.discourse.org/t/notification-claims-x-users-for-approval-but-none-are-found/262853/1 "2023-04-25T17:51:28Z")

</div>

这看起来像一个 bug，但我不知道如何重现它。

我收到一条私信通知，内容是：

> [@](#):
>
> 有新的用户注册等待批准（或拒绝），然后他们才能访问此论坛。
> 
> 请审核。

但是当我点击审核链接时，没有待处理的用户。在 /admin/users 中，我看到一些用户尚未验证他们的电子邮件地址。

我无法确定是通知产生了错误的数量，还是以某种方式存在等待批准但未在搜索中显示的用户，或者以某种方式未验证电子邮件的用户被计入通知的待处理用户但未计入批准。

---

<div class="post-metadata">

**Author:** ![Lilly](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/lilly/32/575047_2.png) [@Lilly](https://meta.discourse.org/u/Lilly)\
**Post date:** [2023年四月25日 18:21 UTC](https://meta.discourse.org/t/notification-claims-x-users-for-approval-but-none-are-found/262853/2 "2023-04-25T18:21:47Z")

</div>

不就是显而易见的事，但会不会是 `allow_new_registrations` 未勾选？ 显然你启用了 `must_approve_users` 设置，我不确定这在注册被禁用时会受到什么影响。 🤔 我认为注册设置会覆盖任何账户创建，但会禁用它。不，那也没道理……

---

<div class="post-metadata">

**Author:** ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)\
**Post date:** [2023年四月25日 18:34 UTC](https://meta.discourse.org/t/notification-claims-x-users-for-approval-but-none-are-found/262853/3 "2023-04-25T18:34:31Z")

</div>

> [@Lilly](#):
>
> 不是想当显而易见的人，但会不会是 `allow_new_registrations` 没有被勾选？

这几乎肯定是一些显而易见的原因，所以我很欢迎你的帮助。

是的，这两个选项都已勾选。有些人已经注册并获得批准。只是声称等待的人数与通知中声称的人数不符。它告诉我 5 个，而过去几天只有 2 个。

---

<div class="post-metadata">

**Author:** ![Lilly](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/lilly/32/575047_2.png) [@Lilly](https://meta.discourse.org/u/Lilly)\
**Post date:** [2023年四月25日 18:47 UTC](https://meta.discourse.org/t/notification-claims-x-users-for-approval-but-none-are-found/262853/4 "2023-04-25T18:47:37Z")

</div>

确实很奇怪。听起来像是用户注册中的某些内容在发送审批请求（计数）以供审核后被拒绝了……

---

<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年四月27日 13:40 UTC](https://meta.discourse.org/t/notification-claims-x-users-for-approval-but-none-are-found/262853/5 "2023-04-27T13:40:33Z")

</div>

当您显示所有已审核项目时，是否会显示已审核用户，或者是否会从员工日志中显示？ 🤷

我经常收到关于已审核项目的私人消息/提醒，但这些项目已经审核过了，所以什么也没有显示。

---

<div class="post-metadata">

**Author:** ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)\
**Post date:** [2023年四月27日 19:20 UTC](https://meta.discourse.org/t/notification-claims-x-users-for-approval-but-none-are-found/262853/6 "2023-04-27T19:20:34Z")

</div>

> [@Canapin](#):
>
> 当显示所有已审核项目时，是否会显示已审核用户，或者是否会显示来自员工日志的用户？ 🤷

我曾假设问题是其他人在我（或网站所有者）处理用户之前就批准了他们，但我无法以这种方式使数字对得上。

---

<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年四月27日 19:38 UTC](https://meta.discourse.org/t/notification-claims-x-users-for-approval-but-none-are-found/262853/7 "2023-04-27T19:38:52Z")

</div>

用户可以在其注册获批准前删除其账户吗？

---

<div class="post-metadata">

**Author:** ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)\
**Post date:** [2023年四月27日 19:44 UTC](https://meta.discourse.org/t/notification-claims-x-users-for-approval-but-none-are-found/262853/8 "2023-04-27T19:44:08Z")

</div>

也许吧？我不这么认为，因为他们需要登录才能做到这一点，而他们要等到被批准后才能登录（但我没有检查代码或类似的东西）。

---

<div class="post-metadata">

**Author:** ![RGJ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rgj/32/523185_2.png) [@RGJ](https://meta.discourse.org/u/RGJ)\
**Post date:** [2023年十一月13日 11:27 UTC](https://meta.discourse.org/t/notification-claims-x-users-for-approval-but-none-are-found/262853/9 "2023-11-13T11:27:05Z")

</div>

我在提交 bug 报告之前搜索时发现了这个主题，所以在此补充一下。

简而言之，通知的查询是错误的，因为它也计算了被拒绝的用户。

通知：16 位用户等待批准，点击链接，只看到 2 位。

通知使用的[查询](https://github.com/discourse/discourse/blob/fcafc8872fe76158064a58fc58bc70b34a279c66/app/jobs/scheduled/pending_users_reminder.rb#L9)是这样的：

```plaintext
puts AdminUserIndexQuery.new(query: "pending", stats: false).find_users_query.to_sql

SELECT "users".* FROM "users"
WHERE (suspended_till IS NULL OR suspended_till <= '2023-11-13 11:05:23.225614')
AND "users"."approved" = FALSE
AND "users"."active" = TRUE
ORDER BY users.created_at DESC,users.username

```

在我的情况下，这会给我 16 位用户：

`[4479, 4472, 4456, 4446, 4443, 4430, 4302, 4291, 4206, 4199, 4178, 4168, 4131, 4061, 3677, 3642]`

将这些 ID 放入 Reviewables 队列会给我 2 位实际需要批准的用户（状态为 0），以及 14 位已被拒绝的用户（状态为 2）：

```plaintext
ReviewableUser.where(type: 'ReviewableUser')
  .where(target_id: ids)
  .pluck(:target_id, :status)

[[3642, 2], [3677, 2], [4061, 2], [4131, 2], [4168, 2],
[4178, 2], [4199, 2], [4206, 2], [4291, 2], [4302, 2],
[4430, 2], [4443, 2], [4446, 2], [4456, 2], [4472, 0], [4479, 0]]

```

---

<div class="post-metadata">

**Author:** ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)\
**Post date:** [2025年九月18日 17:48 UTC](https://meta.discourse.org/t/notification-claims-x-users-for-approval-but-none-are-found/262853/10 "2025-09-18T17:48:34Z")

</div>

有人今天就此事进行了投诉。在找到所有这些信息之前，我“解决”问题的方式大致如下：

```plaintext
bad=User.where(approved: false);
bad.each do |user| puts "https://community.open-emr.org/admin/users/#{user.id}/#{user.username}"; end;

```

这会打印出所有用户的管理员 URL，以便您在那里批准或删除它们，我想。

所以我想这仍然是一个错误。

哦，然后：

```plaintext
ids=bad.pluck(:id);
ReviewableUser.where(type: 'ReviewableUser')
  .where(target_id: ids)
  .pluck(:target_id, :status)

```

现在返回类似这样的内容：

```plaintext
=> [[4610, "rejected"], [4527, "rejected"], [4643, "rejected"], [4648, "rejected"]]

```

所以也许需要从 ReviewableUser 中删除这些？

或者只是删除用户？

---

<div class="post-metadata">

**Author:** ![emyoulation](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/emyoulation/32/165545_2.png) [@emyoulation](https://meta.discourse.org/u/emyoulation)\
**Post date:** [2025年九月23日 16:29 UTC](https://meta.discourse.org/t/notification-claims-x-users-for-approval-but-none-are-found/262853/11 "2025-09-23T16:29:49Z")

</div>

> [@pfaffman](#):
>
> 或者直接删除用户？

作为一名版主（非管理员），我能够将“已拒绝”的用户列在未经过滤的审核队列中。但在用户部分找不到他们，也无法从审核队列访问已拒绝用户的用户编辑器。

这是用于审核队列的筛选器参数，适用于 `gramps.discourse.group/review?additional_filters={}&sort_order=score&status=rejected&type=ReviewableUser`

因此，版主要么需要能够在用户选项卡中找到“已拒绝”和“未批准”状态的用户，要么能够从审核队列导航到用户编辑器。

---

<div class="post-metadata">

**Author:** ![Christian\_Bailey](https://avatars.discourse-cdn.com/v4/letter/c/a5b964/32.png) [@Christian\_Bailey](https://meta.discourse.org/u/Christian_Bailey)\
**Post date:** [2026年五月21日 16:32 UTC](https://meta.discourse.org/t/notification-claims-x-users-for-approval-but-none-are-found/262853/15 "2026-05-21T16:32:24Z")

</div>

我也遇到了同样的问题，是支持团队将我引导至这里的。

我是该账户上唯一的员工或管理员，因此这肯定是此漏洞，而非其他管理员批准了这些请求。

对于这三条通知，当我点击待处理队列时，没有任何用户等待批准：

 ![CleanShot 2026-05-20 at 17.48.16](https://global.discourse-cdn.com/meta/original/4X/d/d/4/dd40e215b792c9829812d81c83046f5d64a70f25.png)

---

<div class="post-metadata">

**Author:** ![Ed\_S](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ed_s/32/134015_2.png) [@Ed\_S](https://meta.discourse.org/u/Ed_S)\
**Post date:** [2026年五月22日 06:44 UTC](https://meta.discourse.org/t/notification-claims-x-users-for-approval-but-none-are-found/262853/16 "2026-05-22T06:44:15Z")

</div>

> [@Christian\_Bailey](#):
>
> 当我点击待处理队列时，没有等待审批的用户

我最近开启了新用户审批功能。我收到的申请非常少——这只是零星几个，并非洪水般涌入。我可以 100% 复现这种情况：我会收到通知，审批用户（通常是批准），然后在一分钟左右，我会收到一个新的虚假通知，但审核队列实际上已经清空了。

这感觉像是一个竞态条件。

---

<div class="post-metadata">

**Author:** ![Moin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/moin/32/554653_2.png) [@Moin](https://meta.discourse.org/u/Moin)\
**Post date:** [2026年五月22日 07:20 UTC](https://meta.discourse.org/t/notification-claims-x-users-for-approval-but-none-are-found/262853/17 "2026-05-22T07:20:37Z")

</div>

您可以使用数据浏览器查询来查找队列中未显示的用户，并直接在其管理页面批准他们。

```sql
SELECT id as user_id
FROM users
WHERE approved = false
AND active = true

```

这是我最近的操作。我每 7 天也会收到这条消息。因此我使用了该查询，结果如下：

 ![Screenshot_20260522_091428_Firefox](https://global.discourse-cdn.com/meta/original/4X/1/d/6/1d6de29f2a345f2ce5d45372ce498ab6147e6432.jpeg)

随后我在用户管理页面进行了验证：

 ![Screenshot_20260522_085849_Firefox](https://global.discourse-cdn.com/meta/original/4X/7/4/6/746538d48b59e8a6ab5151d5c6b8d2d4cc986b44.jpeg)

但我仍需查明为何按钮在我的情况下无法工作。我尚未有机会对此进行检查。  
希望该按钮对您可以正常使用。我认为存在不止一个导致收到通知但队列中无用户的漏洞。RGJ 发现了一些关于被拒绝用户的问题，我还报告了一个案例：在启用该设置时，某些[现有用户未被批准](https://meta.discourse.org/t/must-approve-users-notifications-are-incorrectly-triggered-by-old-users/240731/4)。

---

<div class="post-metadata">

**Author:** ![Ed\_S](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ed_s/32/134015_2.png) [@Ed\_S](https://meta.discourse.org/u/Ed_S)\
**Post date:** [2026年五月22日 11:18 UTC](https://meta.discourse.org/t/notification-claims-x-users-for-approval-but-none-are-found/262853/18 "2026-05-22T11:18:13Z")

</div>

> [@Moin](#):
>
> 我报告了一个问题：在启用该设置的情况下，一些[现有用户未获批准](https://meta.discourse.org/t/must-approve-users-notifications-are-incorrectly-triggered-by-old-users/240731/4)。

也许我遇到过类似情况，不过你在那里的搜索（在你的情况下匹配的是聊天）在我的情况下除了用户外并未匹配到任何内容。探索器查询

```plaintext
SELECT id as user_id
FROM users
WHERE approved = false
AND active = true

```

返回了一位用户，他绝非新用户：

> 加入时间：2021 年 4 月 9 日  
> 最后登录：4 月 16 日  
> 最后查看：4 月 16 日  
> 浏览量：1308  
> 信任等级：成员

---

<div class="post-metadata">

**Author:** ![Ed\_S](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ed_s/32/134015_2.png) [@Ed\_S](https://meta.discourse.org/u/Ed_S)\
**Post date:** [2026年五月22日 11:50 UTC](https://meta.discourse.org/t/notification-claims-x-users-for-approval-but-none-are-found/262853/19 "2026-05-22T11:50:15Z")

</div>

> [@Ed\_S](#):
>
> 返回了一个用户

嗯，我无法手动批准他们。出问题了！

编辑：我不是唯一一个遇到这问题的人——看看这个新话题：[用户个人资料上的批准按钮无法工作](https://meta.discourse.org/t/approval-button-on-users-profile-doesnt-work/403620)

> **详情 - 此处离题**
>
> 在管理界面中我看到了“批准”按钮，点击后没有任何反应。在浏览器控制台中，我看到一个 500 错误。
> 
> > 请求 URL：  
> > “/admin/users/332/approve”  
> > 响应文本：  
> > "\<!DOCTYPE html\>\n\<html\>\n\<head\>\n \<title\>哎呀 - 错误 500\</title\>\n \<meta http-equiv="Content-Type" content="text/html; charset=utf-8"\>\n\</head\>\n\<body\>\n \<h1\>哎呀\</h1\>\n \<p\>驱动此讨论论坛的软件遇到了意外问题。我们为给您带来的不便深表歉意…

---

<div class="post-metadata">

**Author:** ![Christian\_Bailey](https://avatars.discourse-cdn.com/v4/letter/c/a5b964/32.png) [@Christian\_Bailey](https://meta.discourse.org/u/Christian_Bailey)\
**Post date:** [2026年五月22日 13:43 UTC](https://meta.discourse.org/t/notification-claims-x-users-for-approval-but-none-are-found/262853/20 "2026-05-22T13:43:01Z")

</div>

> [@Moin](#):
>
> 您可以使用 [数据浏览器](https://meta.discourse.org/t/32566?silent=true) 查询来查找队列中未显示的用户，并直接在他们的管理页面批准他们。

现在我更担心了，因为我们使用的是 Starter 计划，所以无法使用数据浏览器。这让我觉得可能确实有用户在等待批准，只是我看不见他们。

---

<div class="post-metadata">

**Author:** ![Moin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/moin/32/554653_2.png) [@Moin](https://meta.discourse.org/u/Moin)\
**Post date:** [2026年五月22日 14:01 UTC](https://meta.discourse.org/t/notification-claims-x-users-for-approval-but-none-are-found/262853/21 "2026-05-22T14:01:50Z")

</div>

> [@Christian\_Bailey](#):
>
> 这让我想到，也许有用户在等待审批，只是我看不见他们。

我从未发现过通知消息标题中提到的用户数量更多。消息显示为 1，而我也只找到了 1 个。

 ![image](https://global.discourse-cdn.com/meta/original/4X/b/6/1/b611a05fd22d00c93abe8e813c1e0b3f3e180075.png)

不过，即使不使用数据浏览器，你也能高效地查找未审批用户。你可以通过 `/admin/users` 页面右上角的按钮导出用户目录。

 ![image](https://global.discourse-cdn.com/meta/original/4X/c/f/8/cf8c8af9e34046baf954ad5b96dc2833ef27a325.png)

然后使用你喜欢的工具打开该文件，检查 `approved` 字段为 `false` 的用户。我使用的是 Excel，可以看到确实只有一个用户：

 ![image](https://global.discourse-cdn.com/meta/original/4X/0/a/1/0a17aa053e4c8eef1c7dea891287498321a56025.png)

---

<div class="post-metadata">

**Author:** ![Christian\_Bailey](https://avatars.discourse-cdn.com/v4/letter/c/a5b964/32.png) [@Christian\_Bailey](https://meta.discourse.org/u/Christian_Bailey)\
**Post date:** [2026年五月22日 14:57 UTC](https://meta.discourse.org/t/notification-claims-x-users-for-approval-but-none-are-found/262853/22 "2026-05-22T14:57:47Z")

</div>

@Moin 太有用了，我怎么会没想到呢？

天哪，导出结果显示确实有_未_获批的用户！尽管审核页面仍然是空的：

 ![CleanShot 2026-05-22 at 07.57.14](https://global.discourse-cdn.com/meta/original/4X/6/f/d/6fde2bf9e9aec50fdf0ad031c41acf7c3dce8f1a.png)

这似乎是一个严重的漏洞。如果没人来处理这些用户，他们肯定会非常沮丧。在我搜索并批准他们之前，我想先给 Discourse 一个机会，调查一下为什么他们不会出现在 /review 中的漏洞。

---

<div class="post-metadata">

**Author:** ![Moin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/moin/32/554653_2.png) [@Moin](https://meta.discourse.org/u/Moin)\
**Post date:** [2026年五月22日 15:09 UTC](https://meta.discourse.org/t/notification-claims-x-users-for-approval-but-none-are-found/262853/23 "2026-05-22T15:09:40Z")

</div>

他们的账户激活了吗？我这边有时也会有几个这样的用户，因为他们尚未验证电子邮件地址。而且，只有在确认邮箱后才需要工作人员审批（即耗时），这很合理。

 ![image](https://global.discourse-cdn.com/meta/original/4X/c/a/5/ca503fe586fb1e83b6b78599d73e707d4e04f267.png)

[下一頁](https://meta.discourse.org/t/notification-claims-x-users-for-approval-but-none-are-found/262853.md?page=2)
