Пользователи без статуса сотрудника могут применять теги, доступные только сотрудникам

Вчера я обновил наш сайт и только что заметил, что пользователь, не являющийся сотрудником, применил к своему сообщению тег «featured» (избранное). Это не должно быть возможно, так как этот тег определен как доступный только для сотрудников. Когда я вошел в систему от его имени, я действительно смог получить доступ к ограниченным тегам при публикации. Я попытался воспроизвести это здесь, на meta, но, кажется, теги недоступны для обычных пользователей?

Я попытался воспроизвести проблему на локальном сайте разработки, но пока безуспешно. Подскажите, возникает ли проблема во всех категориях на вашем сайте или только в определённой категории, где нештатные пользователи могут добавлять теги сотрудников? Любые подсказки о том, как воспроизвести проблему, были бы полезны.

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

Хорошо, я протестировал с пользователями TL-0 и TL-1 в безопасном режиме, и у меня есть доступ к тегу «сотрудники» для каждой категории на нашем форуме. То же самое касается и других тегов из нашего списка, доступного только сотрудникам. Я также сбросил разрешения группы тегов «только для сотрудников» на «теги могут использоваться всеми», а затем снова на «только следующие группы могут их использовать», но это не изменило ситуацию. Есть ли что-то ещё, что я мог бы протестировать?

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

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

Это все группы, которые я использую; тест, который я провёл, был выполнен с базовым пользователем, не являющимся членом никакой группы.

Общие теги: доступны всем

События: могут использоваться только в категории «События»:

Когда вы говорите «доступ», имеете ли вы в виду, что вы можете добавлять их к темам, или что вы можете просматривать их и нажимать на них и т. д.?

Теги в вашей группе тегов «Staff Tags» (ba-tips, cant-reproduce, featured и т. д.) могут быть добавлены к темам только пользователями, состоящими в группе staff, но они видны всем. Это означает, что любой может увидеть эти теги в верхней части тем, нажать на тег, чтобы увидеть другие темы с этим тегом и т. д.

Если пользователь TL0 может добавить тег «Staff Tags» (например, «ba-tips») к теме, это проблема. Я воссоздал теги/группы тегов в соответствии с вашими скриншотами на моем локальном экземпляре Discourse (ограничив теги в каждой группе тегов первыми тремя в каждом из приведенных выше скриншотов), и мои пользователи TL0/TL1 не могут добавить «ba-tips» к теме через кнопку «Новая тема» или создав тему, а затем отредактировав её. Можете ли вы добавить теги другим способом/через другой путь в интерфейсе?

Спасибо за ваш ответ, Джейми. Извините, что я не был достаточно конкретен. Я только что обновился до последней версии и снова запустил тест, получив тот же результат. Шаги для воспроизведения:

  1. Войдите в систему как пользователь TL0 или TL1.
  2. Переключитесь в безопасный режим и отключите всё.
  3. Выберите любую категорию.
  4. Создайте новую тему.
  5. Выберите тег «Избранное», который доступен только сотрудникам.
  6. Нажмите «Создать тему».
  7. Сообщение создано, и тег «Избранное» добавлен.

Я только что увидел что-то ещё, что может быть связано: я больше не могу получить доступ к маршрутам tag.json, например к этому:

Topics tagged featured

Обновление: ой, всё в порядке, похоже, /tags/ переименовали в /tag/, что нарушило часть наших автоматизаций.

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

  1. Создал новый сайт на коммите: 6490fac881
  2. Создал пользователя-администратора: jamie.wilson
  3. Включил настройку сайта: tagging enabled
  4. Создал следующие теги:
    360-renders
    add-ons
    advertisement
    conference
    contest
    meetup
    no-ads
    promotion-offered
    ba-tips
    cant-reproduce
    featured
  5. Создал группы тегов в соответствии с предоставленными скриншотами (не более 3 тегов в группе для целей отладки)
  6. Создал категорию ‘Events’ со значением ‘Events’ для параметра ‘Restrict these tag groups to this category’
  7. Пользователь-администратор создал тему в категории ‘Site Feedback’ с тегом ‘ba-tips’ из группы staff.
  8. Вышел из учётной записи администратора
  9. Создал нового пользователя (активированного по ссылке из письма): normal.user
  10. Как normal.user, создал новую тему в категории Uncategorized или Site Feedback. Доступные теги: 360-renders, add-ons, advertisement

  1. Создал новую тему в категории Events. Доступные теги: conference, contest, meetup

(не показано)

  1. Пользователь-администратор может добавлять ограниченные теги к посту normal.user:

  1. Пользователь-администратор видит все три тега:

  1. normal.user видит только два тега:

DiscourseTagging.permitted_tag_names(Guardian.new(User.find_by_username('normal.user')))
["360-renders", "add-ons", "advertisement", "conference", "contest", "meetup"]
DiscourseTagging.hidden_tag_names(Guardian.new(User.find_by_username('normal.user')))
["no-ads", "promotion-offered"]

Возможно, кто-то другой сможет воспроизвести эту проблему? На данный момент мне это не удаётся.

Я думаю, я нашел проблему: #featured присутствовал и в списке для сотрудников, и в нашем списке «общих тегов». Не уверен, как он туда попал, мне нужно проверить права доступа сотрудников и посмотреть, не создали ли они его каким-то образом. Извините за потраченное впустую время, но я очень ценю вашу поддержку! :pray:

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

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