Вчера я обновил наш сайт и только что заметил, что пользователь, не являющийся сотрудником, применил к своему сообщению тег «featured» (избранное). Это не должно быть возможно, так как этот тег определен как доступный только для сотрудников. Когда я вошел в систему от его имени, я действительно смог получить доступ к ограниченным тегам при публикации. Я попытался воспроизвести это здесь, на meta, но, кажется, теги недоступны для обычных пользователей?
Я попытался воспроизвести проблему на локальном сайте разработки, но пока безуспешно. Подскажите, возникает ли проблема во всех категориях на вашем сайте или только в определённой категории, где нештатные пользователи могут добавлять теги сотрудников? Любые подсказки о том, как воспроизвести проблему, были бы полезны.
Хорошо, я углублюсь в ситуацию, чтобы понять, что происходит, и вернусь к вам. Однако это может занять немного времени.
Хорошо, я протестировал с пользователями TL-0 и TL-1 в безопасном режиме, и у меня есть доступ к тегу «сотрудники» для каждой категории на нашем форуме. То же самое касается и других тегов из нашего списка, доступного только сотрудникам. Я также сбросил разрешения группы тегов «только для сотрудников» на «теги могут использоваться всеми», а затем снова на «только следующие группы могут их использовать», но это не изменило ситуацию. Есть ли что-то ещё, что я мог бы протестировать?
У вас определены другие группы тегов или на скриншоте выше показана единственная группа на вашем сайте? Пользователи, с которыми вы проводили тестирование, являются ли они участниками каких-либо других групп?
Возможно создать несколько групп тегов с противоречащими друг другу правилами. Если у пользователя есть разрешение на использование тега в любой группе тегов, это отменяет правила из любой другой группы, запрещающие его использование.
Когда вы говорите «доступ», имеете ли вы в виду, что вы можете добавлять их к темам, или что вы можете просматривать их и нажимать на них и т. д.?
Теги в вашей группе тегов «Staff Tags» (ba-tips, cant-reproduce, featured и т. д.) могут быть добавлены к темам только пользователями, состоящими в группе staff, но они видны всем. Это означает, что любой может увидеть эти теги в верхней части тем, нажать на тег, чтобы увидеть другие темы с этим тегом и т. д.
Если пользователь TL0 может добавить тег «Staff Tags» (например, «ba-tips») к теме, это проблема. Я воссоздал теги/группы тегов в соответствии с вашими скриншотами на моем локальном экземпляре Discourse (ограничив теги в каждой группе тегов первыми тремя в каждом из приведенных выше скриншотов), и мои пользователи TL0/TL1 не могут добавить «ba-tips» к теме через кнопку «Новая тема» или создав тему, а затем отредактировав её. Можете ли вы добавить теги другим способом/через другой путь в интерфейсе?
Спасибо за ваш ответ, Джейми. Извините, что я не был достаточно конкретен. Я только что обновился до последней версии и снова запустил тест, получив тот же результат. Шаги для воспроизведения:
- Войдите в систему как пользователь TL0 или TL1.
- Переключитесь в безопасный режим и отключите всё.
- Выберите любую категорию.
- Создайте новую тему.
- Выберите тег «Избранное», который доступен только сотрудникам.
- Нажмите «Создать тему».
- Сообщение создано, и тег «Избранное» добавлен.
Я только что увидел что-то ещё, что может быть связано: я больше не могу получить доступ к маршрутам tag.json, например к этому:
Обновление: ой, всё в порядке, похоже, /tags/ переименовали в /tag/, что нарушило часть наших автоматизаций.
К сожалению, мне всё ещё не удаётся создать тестовый случай для этой проблемы. Вот шаги, которые я предпринял:
- Создал новый сайт на коммите: 6490fac881
- Создал пользователя-администратора: jamie.wilson
- Включил настройку сайта: tagging enabled
- Создал следующие теги:
360-renders
add-ons
advertisement
conference
contest
meetup
no-ads
promotion-offered
ba-tips
cant-reproduce
featured - Создал группы тегов в соответствии с предоставленными скриншотами (не более 3 тегов в группе для целей отладки)
- Создал категорию ‘Events’ со значением ‘Events’ для параметра ‘Restrict these tag groups to this category’
- Пользователь-администратор создал тему в категории ‘Site Feedback’ с тегом ‘ba-tips’ из группы staff.
- Вышел из учётной записи администратора
- Создал нового пользователя (активированного по ссылке из письма): normal.user
- Как normal.user, создал новую тему в категории Uncategorized или Site Feedback. Доступные теги: 360-renders, add-ons, advertisement
- Создал новую тему в категории Events. Доступные теги: conference, contest, meetup
(не показано)
- Пользователь-администратор может добавлять ограниченные теги к посту normal.user:
- Пользователь-администратор видит все три тега:
- 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 присутствовал и в списке для сотрудников, и в нашем списке «общих тегов». Не уверен, как он туда попал, мне нужно проверить права доступа сотрудников и посмотреть, не создали ли они его каким-то образом. Извините за потраченное впустую время, но я очень ценю вашу поддержку! ![]()
Никаких проблем! Я рад, что была найдена первопричина, и теперь мы все можем чувствовать себя немного увереннее, что новая функция работает как задумано.
Надеюсь, она окажется полезной для вас и вашего сайта теперь, когда проблемы с конфигурацией устранены. Дайте нам знать, как всё получится.











