Tl0 > tl1: ошибка публикации «У вас нет прав для просмотра запрошенного ресурса»

Привет. Это мой первый пост.

Я давний пользователь форумов. Уже месяц работаю с нашей новой установкой Discourse. Я влюбился.

Коротко о главном: Я изменил некоторые настройки tl0 / tl1, чтобы они соответствовали нашему процессу онбординга. Всё, кажется, работает отлично, за исключением того, что новые пользователи tl1 получают ошибку «У вас нет прав для просмотра запрошенного ресурса» при попытке опубликовать своё введение в соответствующем разделе.

Возможно, это связано? В какой-то момент я переименовал tl0 в «wallflowers», так как ограничил их доступ только для чтения в одной категории. Мы решили переименовать эту группу обратно в «Новые пользователи», но всё ещё вижу «wallflowers» в списке новых пользователей (который затем ведёт к настройкам группы «Новые пользователи»). Поиск по пользовательскому тексту с запросом «wallflowers» ничего не возвращает. Возможно, дело в кэше?

Вот какой опыт онбординга мы создаём:

  • tl0 / новый пользователь
    – доступ на чтение и ответ в разделе «Правила»
    – необходимо открыть 5 тем, прочитать 5 тем и провести за этим 3 минуты

  • tl1 / онбординг
    – получает доступ к «Лобби»
    – необходимо открыть 1 тему, создать 1 тему (введение) и провести за этим 5 минут

Также стоит упомянуть, что мне пришлось предоставить группе «wallflowers» права на чтение и ответы в этих категориях, чтобы новые/тестовые пользователи могли их видеть, даже хотя группа «Новые пользователи» уже имела доступ. Ощущение, будто я оказался ребёнком в магазине сладостей и где-то создал конфликт.

Ссылка на скриншоты, надеюсь, они помогут.

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

Привет, Брайан, добро пожаловать!

Я просматриваю предоставленные вами скриншоты, и кое-что привлекло моё внимание. На второй странице указано, что вы являетесь «владельцем» trust_level_0. Это не должно быть возможно… группы уровней доверия создаются автоматически, поэтому у них не может быть владельцев. На этом скриншоте показаны все ваши группы или только первые 8?

На данный момент, учитывая, что группа wallflowers (TL0) имеет права на создание тем, ответы и просмотр в категории «Лобби», все пользователи сайта обладают там полными правами. Я понимаю, что это не то, чего вы стремитесь достичь, и что это сделано для тестирования, но, скорее всего, это означает, что что-то ещё работает неправильно, если пользователь TL1 не может там публиковать.


Также обратите внимание, что уровни доверия иерархичны: все участники TL4 также являются участниками TL3, TL2, TL1 и TL0. Участники TL3 также входят в TL2, TL1, TL0 и т. д. Таким образом, если вы добавляете TL0 (wallflowers) в настройки безопасности категории, вам не нужно дополнительно добавлять TL1, TL2, TL3 и TL4, если только вы не хотите, чтобы у них были разные права.

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


Пожалуйста, подтвердите следующее:

  • На скриншоте страницы групп показаны все группы, а не только первые 8.
  • Ваша версия Discourse.
  • Что вы установили систему в соответствии с официальным руководством по установке.
  • Пытается ли ваш тестовый пользователь создать новую тему или ответить на существующую?
  • Удалите из прав доступа к лобби группы администраторов, участников, модераторов, onboarding, TL3 и TL4 и попробуйте опубликовать снова.

Удаление всех остальных групп решило проблему. Мой тестовый пользователь смог создать новую тему. Ура!

Тем не менее, упоминание «владельца» в «tl0» говорит о том, что я действительно немного напутал и должен вернуть всё к стандартным настройкам, пока не увижу, что всё работает так, как мы планировали. Чтобы предоставить остальные запрошенные детали…

  • Скриншот группы показывает все группы. Верно.
  • v2.4.0.beta2 +127 «Вы используете актуальную версию!»
  • Мы уверены, что Джей из Literate Computing установил всё правильно.
  • Тестовый пользователь пытался создать новую тему. (И теперь может сделать это успешно.)
  • Удаление администраторов и других групп из категории, похоже, решило проблему. (Очистил и другие категории.)

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

Это было очень полезно. Я благодарен. :allthethings:

РЕДАКТИРОВАНИЕ | Любопытно: есть ли какая-то задержка по времени или что-то подобное для распространения некоторых изменений по всей среде, или, возможно, есть кнопка, которую я могу нажать, чтобы ускорить этот процесс? Я замечаю (и мне нравится), что изменения почти сразу отображаются при редактировании, но меня интересует, почему, после того как я отменил все пользовательские настройки, связанные с tl, они отображаются на странице групп*, но в настройках категории всё ещё показаны старые названия.

РЕДАКТИРОВАНИЕ 2: При нажатии на любую из групп выше и немедленном выходе обратно галочка или «Частный» меняется на «Владелец». Не совсем понимаю, что происходит. (А при обновлении страницы они снова возвращаются к «Участник» или «Частный».)

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

Привет, @HAWK. Спасибо за вопрос.

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

Редактирование категории, вкладка «Безопасность». Это же группы? Даже если они автоматически созданы на основе доверия?

Я не могу найти «wallflowers» или «onboarding» ни в пользовательском тексте, ни в настройках. Я откатил все изменения, которые вносил в названия уровней доверия, метки и/или заголовки пользователей.

Так почему, если мой tl1 — это «trust-level-1», его нет в списке настроек категории?

Возможно, я не могу его удалить, если есть хотя бы один пользователь с такой меткой? Единственное другое место, где я видел «wallflower», — это профиль одного из моих тестовых пользователей.

Полностью моя вина, я пропустил последний скриншот. Это действительно список групп в модальном окне категории «Безопасность»!

Если вы переименовали группу, это должно отразиться в выпадающем списке. Вы делали полную перезагрузку страницы? (Я уже цепляюсь за соломинку.)

В браузере? Да.

Есть ли шанс, что в дело вмешался этот старый баг из 2016 года? Похоже на то, что я наблюдаю.

Посмотрев, например, на этого нового пользователя, я вижу, что он состоит в автоматической группе «wallflowers».

Когда я нажимаю на эту ссылку, меня перекидывает сюда (обратите внимание на URL):

Но на данный момент это единственные группы (обратите внимание на URL):

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

Звучит похоже на это https://meta.discourse.org/t/can-not-add-category-security-for-new-group/126808/3 cc/@sam

Это действительно похоже на то, что могло происходить. За ночь всё «как по волшебству» пришло в норму.

Группы с URL:

Группа «trust_level_0», которая вчера использовала «wallflowers», теперь имеет правильный URL:

Пользователь, у которого автоматически была назначена группа «wallflowers», теперь в панели администратора профиля отображается как «trust_level_0»:

В выпадающем списке настроек безопасности категории больше не отображаются группы «wallflowers» или «onboarding»:

Похоже, что в базе данных существует механизм, который задерживает применение определённых изменений?

Спасибо за помощь во всём. Это здорово.

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

Значит ли это, что автоматическое повышение с одного уровня доверия на другой не происходит мгновенно? (Мне кажется, что оно должно происходить сразу.)

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

  1. Новый пользователь регистрируется → уровень доверия tl0
    – получает доступ только к одной категории: правила
    – должен открыть 5 тем
    – должен потратить 3 минуты на чтение
  2. Пользователь должен быть повышен до tl1
    – получает доступ ко второй категории: лобби
    – должен открыть 1 тему
    – должен создать 1 тему
    – должен потратить 5 минут на чтение

Я пригласил тестового пользователя, который получил доступ к правилам, как и задумано, но даже несмотря на то, что этот пользователь выполнил все критерии, он остаётся на уровне tl0. Вторая категория (лобби) настроена так, что группа trust_level_1 имеет права на создание, ответ и просмотр, но новый пользователь не видит её.

Если есть какая-то фоновая задача (cron job) или что-то подобное, выполняющаяся ночью, я могу это проверить, но мне нужно знать, так ли это должно работать, чтобы я мог скорректировать наш план онбординга.

Может ли кто-нибудь это подтвердить, пожалуйста? Заранее спасибо.

@TGP
Брайан, я скопировал и вставил ниже сообщение с моего форума, где несколько новых пользователей сообщили, что они не появились в каталоге пользователей вскоре после первой регистрации. Хотя их не было в списке «За неделю», они отображались при переключении на «Сегодня». После выполнения автоматической задачи в ту же ночь они появились в каталоге во всех представлениях.

[ Пользователи не отображаются в каталоге пользователей ]
[META]

Так как форум работал менее 24 часов, пользователи не отображались ни в одной из категорий поиска каталога пользователей: «Неделя», «Месяц», «Квартал», «Год» или «За всё время». Они появлялись только в записи «Сегодня».

РЕШЕНИЕ: Подождите 24 часа, пока автоматически выполнится ежедневная задача. После этого пользователи должны отобразиться.

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

[Примечание: В исходном сообщении (решение) я указывал «24 часа», однако наша задача, похоже, выполняется около 23:00 по местному времени, хотя я не проверял точное время.]

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

Переход с TL0 на TL1 выполняется каждые… э-э-э, 15 минут или что-то в этом роде? Переходы 1-2 и 2-3 (а также 3-2) выполняются ежедневно.

Это согласуется с моим опытом на данный момент. Спасибо, Кейн Йорк.

Знает ли кто-нибудь, есть ли настройка, чтобы изменить это поведение, или это будет слишком ресурсоемко?

Заранее спасибо.