Использование 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: (В отличие от администраторов, которые могут видеть всё на сайте).

Я не считаю отчёты особенно чувствительными, и доступ к ним может быть весьма полезен для модераторов, однако есть несколько настроек администратора, касающихся раздела отчётов/панели управления, которые могут вам пригодиться (хотя они применяются как к модераторам, так и к администраторам):

  • Вы можете скрыть вкладку «Отчёты» без использования кастомного CSS, используя настройку администратора dashboard visible tabs (хотя они всё ещё смогут получить доступ к странице по ссылке /admin/dashboard/reports).
  • Настройка администратора dashboard hidden reports позволяет убрать конкретные отчёты из списка (нужно использовать их названия, которые можно получить из URL. Например, для отчёта «Входы администраторов» название — staff_logins).
  • Вы можете выбрать, что отображать на панели управления, используя настройку dashboard general tab activity metrics.

Также есть несколько дополнительных настроек администратора, которые по умолчанию отключены, но позволяют модераторам просматривать электронную почту, изменять владельца сообщений, а также создавать и управлять категориями и группами:

Однако, если вы считаете, что полные модераторы обладают слишком большими полномочиями для вашего сайта, вы можете выбрать категориальную модерацию. Это позволит повысить определённые группы до уровня с расширенными правами для конкретных категорий. Они получат доступ к очереди проверки для флагов и одобрения сообщений в своих категориях, а также смогут редактировать, удалять, разделять, объединять и т. д., но не будут обладать полным набором прав и доступа, доступным обычному модератору.

Вы можете ознакомиться с обзором различий по ссылке: Trust Level Permissions Reference

Вы можете включить категориальную модерацию, используя настройку администратора enable category group moderation, а затем назначить группу для каждой категории на вкладке «Настройки» в меню гаечного ключа категории:

Также может быть очень полезно назначить наиболее доверенным пользователям уровень доверия TL4 для помощи в модерации.