类别:安全选项未更改

你好!

不知何故,我尝试应用的安全性更改不起作用——刷新页面后一切都会恢复到默认设置。

我不确定是什么原因导致这种行为——会不会是我们的自定义主题?

我需要取消勾选“创建”选项:

2 个赞

你好!

页面上有一个提示:

此类别是公开的,每个人都可以查看、回复和创建帖子。要限制权限,请删除授予“everyone”组的一个或多个权限。

因此,要删除“创建”权限,您可以删除 everyone,然后添加具有所需设置的 everyone;我刚刚在 2.9.0.beta3 上进行了测试,它有效……

在该屏幕截图中(:point_up:),“新建主题”按钮不起作用。

但是……当我刷新类别的权限时,它会显示相同的“此类别是公开的……”消息,并且所有框都已勾选,而预期的权限仍然存在;在这种情况下,所有三个复选框都已勾选,但有问题的类别只允许阅读和回复,但不允许创建新主题。

:thinking:

我将重建我的站点并进行更多测试,看看这是否仍然存在。 :slight_smile:

我的朋友,给你两个字:安全模式。 :sunglasses: :+1:

2 个赞

您知道吗,我实际上误解了那个提示文本,我的大脑想出了一个变通方法,尽管预期的行为在我的网站上不起作用。

所以请忽略我奇怪的 hack,让我们专注于重现这个 bug。:slight_smile:

1 个赞

是的,我刚刚在我的测试站点上尝试了这一点(41fb4a3ca0),它的行为出乎意料。

预期: 在安全设置中取消勾选“回复”或“创建”(并保存)应该会更新安全设置。

  • 编辑分类 → 安全
  • 取消勾选“所有人”的“创建”(并保存)
  • 刷新页面
  • 恢复到之前的“所有选项都已勾选”

添加第二个组也表现出乎意料

  • 添加另一个组(以及“所有人”)
  • 取消勾选“所有人”的“创建”(并保存)
  • “所有人”组已被移除

我认为这可能是一个错误。

3 个赞

我现在使用的是这个版本,是的,问题仍然存在。

如果你取消勾选一个框,它是否真的设置了该权限,尽管刷新后显示所有框都被勾选了?对我来说,它的工作方式是这样的:如果我设置了权限,它们就会被应用,但重新查看权限时,框总是会被重置为勾选状态,尽管权限仍然被应用。

哦,抓得好!我也看到了这种情况。 :+1:

1 个赞

非常感谢您的帮助!希望很快就能解决 :pray:t2:

3 个赞

我认为你可能是对的。

  • 通过删除所有组来重置安全权限(未授予任何组访问权限;此类别仅对工作人员可见。
  • 添加了“everyone”组及其所有权限(已检查测试用户 - 按预期工作 :white_check_mark:
  • 取消勾选“create”,然后刷新(屏幕显示所有勾选框恢复为勾选状态)
  • 检查测试用户,他们无法在该类别中创建主题,尽管安全屏幕显示他们可以

添加第二个组与“everyone”组一起时,也会出现类似的情况。“everyone”组会从显示中消失,但权限似乎已生效。

似乎也仅限于“everyone”组。我可以添加和修改其他组的权限,并且它们似乎都能正常保留。

1 个赞

我可以在 2.8.2 版本上重现此问题,所以这是一个相当古老的、没人注意到的 bug

但是,权限确实已正确保存在数据库中。
问题“仅仅”似乎是用户界面在加载安全选项卡时会选中所有复选框。

2 个赞

当我将第二个测试推进一步并添加第三个组时,它似乎会覆盖并删除隐藏/后台的“所有人”安全设置。例如:

  • 通过删除所有组重置安全权限(未授予任何组访问权限;此类别仅对员工可见。)
  • 添加“所有人”,并授予所有权限(检查测试用户 - 按预期工作 :white_check_mark:
  • 仅使“所有人”可见(刷新。所有框都已勾选,但实际上,他们只能查看)
  • 添加具有所有权限的 Group2(刷新。“所有人”消失,但实际上,所有人仍然可以看到)
  • 添加 Group3(刷新。Group2 和 Group3 可见,“所有人”现在已失去查看该类别的能力)
2 个赞

问题出在 CategorySerializer 中,并且是在 commit dfaf983 中引入的。
这是一个安全修复程序,已被反向移植,因此在稳定版中也会出现。

4 个赞

你说得对。我已经在这个 PR 中修复了这个问题:

9 个赞

此主题已在 2 天后自动关闭。不再允许回复。