这看起来像一个 bug,但我不知道如何重现它。
我收到一条私信通知,内容是:
但是当我点击审核链接时,没有待处理的用户。在 /admin/users 中,我看到一些用户尚未验证他们的电子邮件地址。
我无法确定是通知产生了错误的数量,还是以某种方式存在等待批准但未在搜索中显示的用户,或者以某种方式未验证电子邮件的用户被计入通知的待处理用户但未计入批准。
这看起来像一个 bug,但我不知道如何重现它。
我收到一条私信通知,内容是:
但是当我点击审核链接时,没有待处理的用户。在 /admin/users 中,我看到一些用户尚未验证他们的电子邮件地址。
我无法确定是通知产生了错误的数量,还是以某种方式存在等待批准但未在搜索中显示的用户,或者以某种方式未验证电子邮件的用户被计入通知的待处理用户但未计入批准。
不就是显而易见的事,但会不会是 allow_new_registrations 未勾选? 显然你启用了 must_approve_users 设置,我不确定这在注册被禁用时会受到什么影响。
我认为注册设置会覆盖任何账户创建,但会禁用它。不,那也没道理……
这几乎肯定是一些显而易见的原因,所以我很欢迎你的帮助。
是的,这两个选项都已勾选。有些人已经注册并获得批准。只是声称等待的人数与通知中声称的人数不符。它告诉我 5 个,而过去几天只有 2 个。
确实很奇怪。听起来像是用户注册中的某些内容在发送审批请求(计数)以供审核后被拒绝了……
当您显示所有已审核项目时,是否会显示已审核用户,或者是否会从员工日志中显示? ![]()
我经常收到关于已审核项目的私人消息/提醒,但这些项目已经审核过了,所以什么也没有显示。
我曾假设问题是其他人在我(或网站所有者)处理用户之前就批准了他们,但我无法以这种方式使数字对得上。
用户可以在其注册获批准前删除其账户吗?
也许吧?我不这么认为,因为他们需要登录才能做到这一点,而他们要等到被批准后才能登录(但我没有检查代码或类似的东西)。
我在提交 bug 报告之前搜索时发现了这个主题,所以在此补充一下。
简而言之,通知的查询是错误的,因为它也计算了被拒绝的用户。
通知:16 位用户等待批准,点击链接,只看到 2 位。
通知使用的查询是这样的:
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):
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]]
有人今天就此事进行了投诉。在找到所有这些信息之前,我“解决”问题的方式大致如下:
bad=User.where(approved: false);
bad.each do |user| puts "https://community.open-emr.org/admin/users/#{user.id}/#{user.username}"; end;
这会打印出所有用户的管理员 URL,以便您在那里批准或删除它们,我想。
所以我想这仍然是一个错误。
哦,然后:
ids=bad.pluck(:id);
ReviewableUser.where(type: 'ReviewableUser')
.where(target_id: ids)
.pluck(:target_id, :status)
现在返回类似这样的内容:
=> [[4610, "rejected"], [4527, "rejected"], [4643, "rejected"], [4648, "rejected"]]
所以也许需要从 ReviewableUser 中删除这些?
或者只是删除用户?
作为一名版主(非管理员),我能够将“已拒绝”的用户列在未经过滤的审核队列中。但在用户部分找不到他们,也无法从审核队列访问已拒绝用户的用户编辑器。
这是用于审核队列的筛选器参数,适用于 gramps.discourse.group/review?additional_filters={}&sort_order=score&status=rejected&type=ReviewableUser
因此,版主要么需要能够在用户选项卡中找到“已拒绝”和“未批准”状态的用户,要么能够从审核队列导航到用户编辑器。