Обновление «Уведомления по умолчанию для категории» для групп, у которых нет прав на просмотр категории

Можно добавить уведомления о категориях (через /g/[group_name}/manage/categories) для категорий, которые группа не имеет права просматривать. Например, можно настроить слежение за категорией «Staff» для всех пользователей уровня доверия Trust_level_0. При этом даже появляется подсказка о применении изменений ретроспективно:

Это было бы очень плохо :tm:, если бы Discourse действительно применил такое изменение и начал показывать случайным пользователям, что говорят сотрудники в приватных каналах. К счастью, эта подсказка — обман. После применения этого пугающего изменения (на тестовом экземпляре) я мог притвориться случайным пользователем и убедиться, что у него эта настройка не активирована в параметрах отслеживания (/my/preferences/tracking/), и он не получает уведомлений о новой активности. Безопасность категорий работает как положено.

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

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

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

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

1 лайк

Не стоит беспокоиться: в канале уведомлений всегда проверяются права доступа в момент генерации уведомлений.

Таким образом, в данном случае никакой информации не утечет. Мы просто создадим записи, и если, по случайности, пользователь получит видимость, став сотрудником, он автоматически начнет следить.

Кажется, что речь здесь в основном об улучшении UX, чтобы не вводить администратора в заблуждение относительно того, что произойдет.

1 лайк

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

1 лайк