使用 CSS 根据用户角色隐藏特定元素

你好!

我是 Discourse 管理员的新手,刚发现版主几乎拥有与管理员相同的访问权限。此外,对于版主拥有哪些访问权限/能力缺乏控制。

我的主要担忧是版主可以……
A) 访问任何用户的私人消息。
B) 访问报告区域。
C) 我尚未发现的其他令人担忧的领域!

因此,我开始寻找解决方案,但在阅读了一位联合创始人发布的帖子后放弃了……

……所以看来我必须自己动手解决,以某种方式限制版主的访问权限。


以下是一些我想到的解决方案……
请随时纠正我或分享更好的方法。

A) 放弃版主选项,转而创建一个新的用户组/信任级别,该级别基于更保守的访问级别。

B) 添加一些 JavaScript 来禁用报告选项卡并阻止版主访问私人消息。

C) 添加一些基于目标的 CSS 来隐藏我不想让版主看到的区域。


使用 CSS 定位来隐藏管理仪表板中的报告选项卡。

由于我缺乏专业知识,我采取了不太理想的选项,即使用 CSS 来隐藏特定区域。我成功地为所有版主和管理员隐藏了报告选项卡,方法是……

li.navigation-item .reports {
   display: none !important;
}

但我需要它只针对版主。所以我尝试修改来自 此处 的代码,该代码说明了如何使用 CSS 专门定位版主并更改其用户名颜色。所以我下面调整了它,但无法使其正常工作。

li.navigation-item {
  &.moderator {
    .reports {
      display: none !important;
    }
  }

  &.admin {
    .reports {
      display: inline;
    }
  }
}

有人能帮我指出我在 CSS 定位方面做错了什么,或者为我提供一个更好的解决方案吗?

非常感谢。

你好,欢迎 @UnitedFreedom :slight_smile:

任何 CSS 更改都只是表面上的,可以通过在浏览器控制台中调整页面轻松绕过。但是……

为了让你放心,版主并没有不受限制地访问私人消息,只有当有人标记一条消息时,他们才能查看。:+1: (与管理员不同,管理员可以看到网站上的一切)

我认为报告并不特别敏感,对版主来说可能很有用,但有几个管理员设置针对报告/仪表板区域,你可能会觉得有用(尽管它们会同时应用于版主和管理员):

  • 你可以使用 dashboard visible tabs 管理员设置来隐藏报告选项卡,而无需使用自定义 CSS(尽管他们仍然可以通过 /admin/dashboard/reports 链接访问该页面)。
  • dashboard hidden reports 管理员设置可以从列表中删除特定报告(你需要使用它们的名称,这些名称可以从它们的 URL 中获取。例如,Admin Logins 将是 staff_logins)。
  • 你可以使用 dashboard general tab activity metrics 来选择在仪表板上显示什么。

还有一些管理员设置默认是禁用的,但它们允许版主查看电子邮件、更改帖子所有权以及创建和管理类别和组:

但是,如果你认为版主拥有对你网站来说过多的权力,你可以选择类别版主。这将提升某些组在特定类别中拥有增强的权力。他们将能够访问其类别的审核队列和帖子批准,以及编辑、删除、拆分、合并等,但不会拥有版主所拥有的全部权力。

你可以在 Trust Level Permissions Reference 中查看差异概述。

你可以使用 enable category group moderation 管理员设置启用类别版主,然后在类别扳手菜单的设置选项卡中为每个类别设置一个组:

将一些高度信任的用户设置为 TL4 也可以极大地帮助进行版主工作。

7 个赞

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