pfaffman
(Jay Pfaffman)
2020 年8 月 25 日 22:05
1
继续讨论 Discourse 中各种用户状态的描述(管理员 / 版主 / 工作人员 / 开发者 / 其他) :
我有一个论坛,其中包含了从 Google Groups 导入的内容。出于某些原因,该论坛将作为 Google Group 的静态存档。Google Group 将继续独立运行,而论坛仅将其帖子作为静态存档数据包含在内。目前,我通过定期运行 Google 导入脚本来实现这一点,但我认为很快会改为配置传入邮件,并将该类别订阅到 Google Group 列表。
我已关闭“启用暂存用户”选项。所有用户均显示为 active=false 且 staged=true。
如果某人回复某条帖子,他们会收到一封电子邮件。
如果某人给他们发送私信(PM),他们也会收到一封电子邮件。
如果我将用户的 staged 状态更改为 false,他们将不再收到私信,但仍会收到关于其消息回复的通知。这似乎是一种理想的行为,也正好是今天有人询问的问题。但相关实体认为,他们无权向这些尚未在论坛上创建账户的 Google Groups 用户发送邮件。
也许我可以修改导入脚本,或者开发一个插件,使所有 active=false 的用户自动设置为 staged=false?或者我是否可以通过插件将存档类别设置为不可被关注?
顺便说明一下,暂存用户应有的处理方式如下:
sam:
暂存用户
系统为邮件集成自动创建的特殊占位账户
永远不会发送电子邮件摘要
自动关注其参与的所有消息,并接收回复通知
可通过电子邮件回复通知
用户名和姓名会自动选取
账户仍可使用相同邮箱注册并“接管”该暂存账户
忘记密码功能对暂存账户无效……当您尝试向暂存账户发送密码重置邮件时不会有任何反应
存储 :users 表中的 staged 字段
2 个赞
pfaffman
(Jay Pfaffman)
2020 年9 月 4 日 17:33
2
继续讨论 如何禁用暂存用户的邮件? :
好吧,我还没找到阻止暂存用户接收邮件的方法,所以我打算
def no_mail_for_staged_users
staged=User.where(staged: true)
staged.all.each do |user|
o=UserOption.find_by(user_id: user.id)
o.email_level = 2
o.email_messages_level = 2
o.email_digests = false
o.save
end
end
并修改 mbox 脚本,以类似方式禁用其创建的暂存用户的邮件。
如果有人有更好的想法,我很乐意听取。
您使用的是最新版本吗?我们在过去一两周内修复了一个关于处于暂存状态的用户收到邮件的漏洞。
2 个赞
pfaffman
(Jay Pfaffman)
2020 年9 月 5 日 12:55
4
那很好。我会在周一检查一下,看看如何撤销用户选项的更改。
1 个赞
pfaffman
(Jay Pfaffman)
2024 年11 月 14 日 16:48
6
这是一个非常老的话题,我写这个的时候正在做的事情现在已经不可能了。
看起来我将那个函数添加到了导入用户的脚本中。如果你因为某些原因想让它发生,那么你可能需要一个插件来实现。描述一下是什么导致了你不想收到邮件的已暂存用户;你可能需要更新任何正在做这件事的东西,来运行一个像我包含的那个脚本。如果你需要一个自定义插件来做这件事,你可以在 Marketplace 发帖或直接联系我。
1 个赞