CSS для скрытия нескольких элементов

Есть ли способ выбрать кнопки «Принять на себя роль» и «Анонимизировать пользователя» на странице администратора/пользователя?

Я хочу скрыть именно эти кнопки. Однако мне пока удаётся идентифицировать только
.btn-danger, .admin-wizards-custom-fields .btn.destroy
что скрывает также кнопки удаления, объединения, отключения и приостановки.

Также я не могу скрыть вкладку «Сообщения» на карточке пользователя, сохранив при этом возможность отображения элемента для «себя».

Есть какие-нибудь идеи?

Кажется, что нет.

Какую проблему вы пытаетесь решить? Вы имеете в виду, что не доверяете своим администраторам и боитесь, что они могут принять личность или анонимизировать пользователей? И что они не знают, как использовать safe-mode, чтобы обойти ваше скрытие этих кнопок? Если так, то у вас проблема, которую нельзя решить с помощью CSS.

Я уже делал это некоторое время назад, но просто не помню конкретный CSS, который я для этого написал.

Сценарий использования этого форума — рабочая группа, но не типичная. Это профсоюз, и он предназначен специально для избранных представителей. Некоторые представители входят в руководство, некоторые — нет. В любом случае тем, кто в руководстве, нужны функциональные возможности администратора, но не в том виде, как у администратора сообщества на форуме.

Модерация абсолютно не нужна, нет никаких веских причин читать чьи-либо личные сообщения (ведь мы пытаемся уйти от использования электронной почты как основного средства обсуждения, а чат-клиенты вроде Slack не так удобны, как форумный формат), и никогда не возникает необходимости имитировать другого пользователя. Кроме того, анонимизация совершенно излишня.

Кроме того, ни у одного из администраторов (руководящих ролей в группе) нет опыта в IT. Я реализовывал это ранее, создав компонент темы, который скрывал всё, что делает Discourse полезным для сообщества, но не для рабочей группы. Затем я создал запрос в Data Explorer, чтобы отслеживать, был ли этот компонент темы отключен и когда. Таким образом, если это когда-либо произойдёт, любой сможет привлечь к ответственности человека, нарушающего конфиденциальность или защищённые категории.

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

Что ж, возможно, шаблон изменился, так как ни мы, ни вы не видим, как точно выбрать эту кнопку. (Хотя такое изменение кажется маловероятным).

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

Я думаю, что это возможно, так как у этих кнопок раньше не было динамического эмбера.

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

Извините, если я что-то упускаю, но я могу скрыть кнопки «Притвориться», «Анонимизировать пользователя» и «Объединить», используя селектор pull-right:

.pull-right {
    display: none;
}

Да, но это скрывает и кнопки «Удалить пользователя» и «Объединить». Я надеялся их оставить.
Я пытаюсь выбрать саму кнопку. Я сделал это для вкладки «Сообщения» на странице пользователя так, чтобы скрыть её от всех пользователей (администраторов), но снова отображать для себя:

.user-main .main-nav a[href$=“/messages”] {
display: none !important;
}
.viewing-self .user-main .main-nav a {
display: inline-block !important;
}

Также пробовал это. Думаю, я делал так некоторое время назад, но не уверен на 100%, прошло уже много времени. Но, увы, не работает..

button[aria-label=“Impersonate”] {
display: none;
}

Я просто не могу понять, как воспроизвести эту функциональность на странице администратора/пользователя.. (непрофессионал/любитель)

Мы добавим сюда несколько классов, это очень простые дополнения.

.pull-right — это утилитарный класс, который используется во многих местах, поэтому такое изменение, скорее всего, окажет негативное влияние! В целом, в CSS, если вы пытаетесь выбрать один конкретный элемент, стоит задуматься о том, насколько специфичным звучит селектор. Если он кажется чем-то общим, что может быть использовано в других местах (например, .btn в качестве другого примера), то он, вероятно, слишком широкий. Что-то вроде .admin-user .pull-right может быть достаточно специфичным.


В любом случае, я отправил pull request для добавления некоторых классов к этим кнопкам администратора. Это должно стать доступно в обновлениях Discourse в течение следующих нескольких дней.

После того как это будет объединено, вы сможете использовать любую комбинацию:

.btn-user-delete,
.btn-user-merge,
.btn-anonymize,
.btn-impersonate {
  display: none;
}

Спасибо. :slightly_smiling_face: Я и сам удивлялся, почему это звучит не так конкретно, как большинство других примеров, с которыми я экспериментировал.

Спасибо, Крис! Ты по-прежнему абсолютно невероятен, невероятно полезен, и мы искренне ценим тебя!