Категории: Параметры безопасности не меняются

Привет!

По какой-то причине изменения в настройках безопасности, которые я пытаюсь применить, не работают — при обновлении страницы всё возвращается к настройкам по умолчанию.

Не уверен, что может вызывать такое поведение — не связано ли это с нашей пользовательской темой?

Мне нужно снять галочку с опции «Создание»:

2 лайка

Привет!

На странице есть подсказка:

Эта категория общедоступна: все могут просматривать, отвечать и создавать посты. Чтобы ограничить права доступа, снимите одну или несколько разрешений, выданных группе «everyone».

Так что, чтобы убрать разрешение «создание», можно удалить everyone, а затем снова добавить everyone с нужными настройками. Я только что протестировал это на версии 2.9.0.beta3, и всё работает…

На этом скриншоте (:point_up:) кнопка «Новая тема» неактивна.

Однако… когда я обновляю права доступа для категории, снова появляется сообщение «Эта категория общедоступна…», и все флажки отмечены, хотя фактические права остаются прежними: в данном случае отмечены все три чекбокса, но указанная категория позволяет только читать и отвечать, но не создавать новые темы.

:thinking:

Я собираюсь пересобрать свой сайт и ещё раз протестировать, чтобы проверить, сохраняется ли эта проблема. :slight_smile:

Два слова для тебя, друг: безопасный режим. :sunglasses: :+1:

2 лайка

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

Поэтому, пожалуйста, забудьте о моём странном хаке, и давайте сосредоточимся на воспроизведении этой ошибки. :slight_smile:

1 лайк

Да, я только что проверил это на своём тестовом сайте (41fb4a3ca0), и он ведёт себя непредсказуемо.

Ожидаемое поведение: Снятие галочки с пункта «ответ» или «создание» в настройках безопасности (и сохранение) должно обновить эти настройки.

  • Редактирование категории → Безопасность
  • Снять галочку «создание» для всех (и сохранить)
  • Обновить страницу
  • Настройки вернулись к предыдущему состоянию со всеми отмеченными опциями

Добавление второй группы также привело к неожиданному поведению:

  • Добавить ещё одну группу (вместе с «всеми»)
  • Снять галочку «создание» для «всех» (и сохранить)
  • Группа «все» была удалена

Думаю, это может быть баг.

3 лайка

Сейчас я на этой версии, и да, проблема сохраняется.

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

Отличное замечание! Я тоже наблюдаю такое поведение. :+1:

1 лайк

Большое спасибо за вашу помощь! Надеемся, что это скоро будет исправлено :pray:t2:

3 лайка

Думаю, вы правы.

  • Сбросили настройки безопасности, удалив все группы (Нет групп, которым предоставлен доступ; эта категория будет видна только сотрудникам.)
  • Добавили группу «everyone» со всеми разрешениями (проверили тестового пользователя — работает как ожидалось :white_check_mark:)
  • Сняли галочку с разрешения «create» и обновили страницу (на экране отобразилось восстановление всех отмеченных чекбоксов)
  • Проверили тестового пользователя — он больше не может создавать темы в этой категории, несмотря на то, что экран безопасности показывает, что он может

Аналогичная ситуация возникает при добавлении второй группы вместе с «everyone». Группа «everyone» исчезает из отображения, но разрешения, похоже, применяются.

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

1 лайк

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

Однако разрешения действительно корректно сохраняются в базе данных.

Проблема «только» в том, что интерфейс сразу после загрузки вкладки «Безопасность» устанавливает все флажки.

2 лайка

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

  • Сбросить разрешения безопасности, удалив все группы (ни одной группе не предоставлен доступ; эта категория будет видна только сотрудникам.)
  • Добавлена группа «все» со всеми разрешениями (проверка тестового пользователя — работает как ожидается :white_check_mark:)
  • Ограничить видимость для «всех» только определенными элементами (обновить. Все флажки отмечены, но на самом деле они видны только им)
  • Добавить Group2 со всеми разрешениями (обновить. Группа «все» исчезает, но на самом деле все всё ещё могут видеть)
  • Добавить Group3 (обновить. Видны Group2 и Group3, группа «все» теперь утратила возможность видеть эту категорию)
2 лайка

Проблема заключается в CategorySerializer и была внесена в коммите dfaf983.
Это исправление безопасности, которое было портировано обратно, поэтому оно проявляется и в стабильной версии.

4 лайка

Вы правы. Я уже отправил исправление этой проблемы в этом PR:

9 лайков

Эта тема была автоматически закрыта через 2 дня. Новые ответы больше не принимаются.