Новая тема всё ещё доступна, даже если у пользователей нет прав

Когда пользователь находится в категории, где у него нет права create, я всё ещё вижу кнопку Новая тема.

При нажатии открывается редактор, но без выбранной категории:

Когда я захожу в эту категорию, система действительно сообщает, что у меня нет разрешения на создание здесь.

Клянусь, помню, что в таком случае кнопка Новая тема должна быть просто серой. Это что-то изменилось?

Добрый старый AI Bot на Meta направил меня на это изменение в 2025 году. Можем ли мы откатить/отключить это? На мой взгляд, это может вызвать путаницу у пользователей.

Хм… Возможно, я ошибаюсь, но, может быть, это настройка сайта «Default subcategory on read only category»? Это поможет?

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

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

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

Я понимаю логику этой реализации, но, на мой взгляд, она предполагает, что конечный пользователь поймёт, как и почему это работает. Я знаю, что мои пользователи запутаются. Думаю, я попробую создать что-то, что воспроизведёт старый метод.

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

Можете ли вы подробнее объяснить, что вы имеете в виду?

2 лайка

Это интересный для меня вопрос, я понимаю логику обеих сторон.

Первое, что приходит в голову, — это какое-то всплывающее окно или предупреждение о том, что тема, которую вы пытаетесь создать, окажется не в той категории, где вы сейчас находитесь, а в другой. Причина в том, что вам не разрешено создавать темы в этой категории…

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

И, конечно же, автор темы может использовать CSS, чтобы скрыть кнопку или изменить текст — это немного костыльное решение, но…

У каждого сообщества свои особенности, и я вижу, что это может запутать менее опытных пользователей.

В данных обстоятельствах я понимаю, что этот запрос может быть важным.

3 лайка

Я думаю, что простое решение можно реализовать, добавив этот компонент GitHub - discourse/discourse-groups-css-classes-in-body · GitHub, а затем применив некоторые CSS-трюки, например:

body.group-not-allowed-group.category-not-allowed-category #create-topic {
    display: none;
}

где not-allowed-group — это группа, для которой нужно скрыть кнопку создания темы, а not-allowed-category — категория, на которую нужно ориентироваться. Вы можете использовать циклы следующим образом:

$categories: 'category1', 'category2', 'category3';
$groups: 'group1', 'group2', 'group3';

@each $category in $categories {
  @each $group in $groups {
    body.group-#{$group}.category-#{$category} #create-topic {
      display: none;
    }
  }
}

Конечно, если вы пойдёте этим путём, вероятно, проще создать пользовательский компонент темы с настройками списка для групп и категорий, чтобы их было легко выбирать и т. д.

2 лайка

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