为无权查看该类别的群组更新“类别默认通知”

可以将类别通知(通过 /g/[group_name}/manage/categories)添加到用户组无权查看的类别中。例如,您可以设置所有 Trust_level_0 的成员关注 Staff 类别。甚至还有一个提示可以追溯性地应用更改:

如果 Discourse 真的进行了此更改,并开始向普通用户显示员工在私密对话中的内容,那将是_非常糟糕_的 :tm:。幸运的是,这个提示是骗人的。在(在暂存实例上)进行了这项非常可怕的更改后,我可以冒充一个普通用户,并看到他们在其跟踪首选项(/my/preferences/tracking/)中没有设置此项,并且不会收到新活动的通知。类别安全按预期工作。

话虽如此,当我以管理员身份登录并查看用户的跟踪首选项时,我看到了这个:

我可以将他们添加到各种私密类别中,如果您不知道 Discourse 在后台正确管理着这些内容,这可能会引起短暂的恐慌。

我认为正确的方法是禁止管理员设置用户实际上无法读取的类别的跟踪首选项。这意味着,除非用户属于可以查看该类别的用户组,否则我不能在访问其他用户个人资料时手动添加类别。如果我使用批量更新将整个用户组添加到某个类别,如果该用户组无权读取该类别,系统将报错。

是否有任何理由允许管理员添加实际上不发送通知的通知设置?我能想到的唯一一种情况是,管理员计划将来开放某个类别,并希望为相应的用户组提前准备好通知。(但我不知道这是否合理。)

1 个赞

无需担心,通知管道总是在我们发出通知时检查权限。

所以,在这种情况下,不会泄露任何信息,我们只会设置记录,如果用户碰巧通过成为管理员获得了可见性,他们将自动关注。

感觉这主要是为了改善用户体验,这样它就不会向管理员谎报将要发生的事情。

1 个赞

好的。用户对此一无所知,但管理员(尤其是习惯了可能搞砸类似事情的软件的管理员)需要深入研究一些内容(电子邮件日志、冒充其他用户、在暂存环境中进行测试等)来验证实际上没有发送任何通知。

1 个赞