如何禁用访问而不向用户发送电子邮件

您好。

我的论坛版本是 2.7.0.beta6。

我负责维护一个员工论坛,我们希望在无需发送邮件通知的情况下,禁止特定用户访问。目前我们是通过暂停其账户来实现的,但暂停账户时,系统会向该用户发送一封包含暂停原因的邮件。我们实在不想因此打扰到对方。

我曾尝试先停用测试账户,然后再暂停它,但即便如此,邮件仍然会被发送。

注意:当我暂停用户时,“邮件消息”字段并未填写任何内容。

请问是否有办法在不发送邮件的情况下禁用用户对 Discourse 的访问权限?

- Ryan

2 个赞

以下是可在 Rails 控制台中执行的代码:

./launcher enter app 
rails c
username = "user-to-suspend-username"
admin_username = "admin-username"
reason = "suspend reason"
till = Time.at(33174889200)
u = User.find_by_username(username)
puts "couldn't find user named #{username}" unless u
if u and !u.suspended?
  u.suspended_till = till
  u.suspended_at = DateTime.now

  User.transaction do
    u.save!
    admin = User.find_by_username(admin_username)
    StaffActionLogger.new(admin).log_user_suspend(
      u,
      reason
    )
  end
  u.logged_out
end
1 个赞

如果该人员已不再是员工,他们为何仍能访问其企业邮箱账户?:thinking:

你可以先编辑该用户,将其邮箱地址更改为 no@email.some.random.nonexistent.domain,然后再暂停其账户。

1 个赞

系统使用的是个人邮箱。

我知道如何在 Rails 控制台中操作,但有没有办法在 Web 界面中完成?我看到可以在他们的个人资料中编辑邮箱,但看起来需要验证邮箱后才能生效。

1 个赞

之前发送邮件不是可选的吗?

3 个赞

所有文档都表明情况确实如此!但是,即使你留空消息部分,它仍然会发送邮件。

当存在此消息时,将发送包含该消息的电子邮件

可选地,提供有关停用的更多信息,该信息将被电子邮件发送给用户。

2 个赞

你说得对,我刚刚测试过了。而且,停用用户的邮箱也无法阻止邮件发送。我敢肯定,在以前的版本中,除非添加了可选消息,否则不会发送邮件。

2 个赞

我已发起一个拉取请求,以使行为与文档保持一致:

6 个赞

此修复已由 @eviltrout 合并 :tada:

2 个赞

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.