(Запрос функции от одного человека — это отчёт об ошибке для другого…
)
Страница индекса «Группы» (например, /groups или /g) должна учитывать настройки видимости автоматических групп и отображать их соответствующим образом. Это работает для группы Moderators, но не для остальных. Причина — жёстко заданное исключение в GroupsController.index(), из-за которого другие автоматические группы никогда не появляются на странице индекса для пользователей, не являющихся сотрудниками, независимо от настроек видимости.
Такое исключительное поведение проблематично как минимум по двум причинам:
- Если администратор хочет сделать автоматические группы доступными для индексации обычными пользователями, это ему не позволяет.
- Разрыв между настройкой видимости и фактической видимостью опасным образом запутывает. В частности, создаётся впечатление, что настройка игнорируется или не имеет значения для автоматических групп (например, «Ну ладно, похоже, автоматические группы всегда доступны только сотрудникам, что бы я ни настраивал…»), хотя на самом деле настройка продолжает контролировать доступ к страницам конкретных групп (например,
/g/trust_level_0) и их спискам участников.
Комментарий в соответствующем коде указывает, что такое исключительное поведение предназначено для «скрытия автоматических групп от всех, кроме сотрудников, чтобы не загромождать страницу», — но в этом механизме нет необходимости для достижения такой цели. Администратор, желающий убрать лишнее со страницы индекса, может просто установить видимость автоматических групп по своему усмотрению, как и для любой другой группы.
Я предлагаю просто удалить 6 строк кода из app/controllers/groups_controller.rb, реализующих это поведение.
Если считается, что по умолчанию необходимо иметь «чистую» страницу индекса для новых установок Discourse, то лучшим решением было бы установить настройки видимости автоматических групп по умолчанию как «только для сотрудников» при их первоначальном создании системой. установить фильтр по умолчанию на странице индекса на «неавтоматические» для пользователей, не являющихся сотрудниками.
(Настройка видимости — это контроль доступа — значение по умолчанию должно соответствовать разумному уровню доступа, независимо от того, как выглядит страница индекса.)
К сведению, эта тема является продолжением обсуждения:


