Детальные групповые права доступа для анонимных и авторизованных пользователей

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

Я думаю, что самый интересный столбец — это «everyone также включал anonymous_users до изменения?». Если там указано «Да», это означает, что everyone означал авторизованных И анонимных пользователей до применения этого предстоящего изменения.

Как вы можете видеть, таких настроек всего несколько, поэтому именно для них администратору нужно будет явно добавить anonymous_users в настройки сайта:

  • hidden_post_visible_groups — мне действительно нужно изменить эту настройку, чтобы разрешить использование anonymous_users, текущий код не совсем подходит для этого предстоящего изменения.
  • lazy_load_categories_groups — мне нужно исправить и эту настройку, она выполняет избыточную проверку everyone, которая уже делается внутри user.in_any_groups?.
  • styleguide_allowed_groups — эта настройка работает как есть, но я также немного её подправлю.

Когда это предстоящее изменение станет постоянным, группы logged_in_users и anonymous_users будут использоваться исключительно, а группа everyone будет удалена.


Настройка Описание Применяется к logged_in_users? Применяется к anonymous_users? everyone также включал anonymous_users до изменения? Результат анализа кода
whispers_allowed_groups Разрешить частное общение внутри тем для членов указанных групп. Нет Нет Нет everyone, logged_in_users и anonymous_users запрещены; в runtime также ожидается конкретная принадлежность к группе.
hidden_post_visible_groups Разрешить членам этих групп просматривать скрытые сообщения. Сотрудники всегда могут просматривать скрытые сообщения. Да Нет Да Проверяет everyone перед отклонением анонимных пользователей; в противном случае использует in_any_groups?.
about_page_hidden_groups Не показывать членов конкретных групп на странице /about. Нет Нет Нет Использует group_users; у псевдогрупп нет строк участников.
about_page_extra_groups Группы, которые будут показаны на странице «О нас» ниже модераторов. Нет Нет Нет Загружает конкретные группы и участников для отображения.
anonymous_posting_allowed_groups Группам, которым разрешено включать анонимное размещение сообщений. Да Нет Нет Проверка авторизованного пользователя через in_any_groups?; anonymous_users запрещен.
personal_message_enabled_groups Разрешить пользователям из этих групп создавать личные сообщения. Да Нет Нет Проверка авторизованного пользователя через in_any_groups?; anonymous_users запрещен.
shared_drafts_allowed_groups Разрешить пользователям из этих групп просматривать и редактировать Общие черновики. Да Нет Нет Проверка через Guardian; anonymous_users запрещен.
here_mention_allowed_groups Группам, которым разрешено упоминать @here. Да Нет Нет Требуется аутентифицированный пользователь; anonymous_users запрещен.
approve_unless_allowed_groups Сообщения пользователей, не входящих в эти группы, должны быть одобрены. Да Нет Нет Проверка пользователя через in_any_groups?; anonymous_users запрещен.
approve_new_topics_unless_allowed_groups Новые темы от пользователей, не входящих в эти группы, должны быть одобрены. Да Нет Нет Проверка пользователя через in_any_groups?; anonymous_users запрещен.
skip_review_media_groups Пользователи, не входящие в эти группы, отправляют сообщения с встроенными медиафайлами на проверку. Да Нет Нет Проверка пользователя через in_any_groups?; anonymous_users запрещен.
content_localization_allowed_groups Группам, которым разрешено обновлять локализованный контент. Да Нет Нет Проверка через Guardian/пользователя; anonymous_users запрещен.
email_in_allowed_groups Группам, которым разрешено создавать новые темы через электронную почту. Да Нет Нет Проверка пользователя, отправившего письмо; anonymous_users запрещен.
view_raw_email_allowed_groups Группам, которым разрешено просматривать исходный текст входящих писем. Да Нет Нет Проверка через Guardian; anonymous_users запрещен.
uploaded_avatars_allowed_groups Укажите группы, которым разрешено загружать пользовательские аватары. Да Нет Нет Проверка текущего/целевого пользователя; anonymous_users запрещен.
create_topic_allowed_groups Группам, которым разрешено создавать новые темы. Да Нет Нет Требуется пользователь и использует in_any_groups?; anonymous_users запрещен.
topic_timers_allowed_groups Группам, которым разрешено устанавливать таймеры тем. Да Нет Нет Проверка через Guardian; anonymous_users запрещен.
edit_wiki_post_allowed_groups Группам, которым разрешено редактировать сообщения, отмеченные как wiki. Да Нет Нет Проверка через Guardian; anonymous_users запрещен.
edit_post_allowed_groups Группам, которым разрешено редактировать сообщения. Да Нет Нет Проверка через Guardian; anonymous_users запрещен.
self_wiki_allowed_groups Разрешить пользователям из этих групп делать свои сообщения wiki. Да Нет Нет Проверка через Guardian; anonymous_users запрещен.
send_email_messages_allowed_groups Группам, которым разрешено отправлять личные сообщения через электронную почту. Да Нет Нет Проверка через Guardian; anonymous_users запрещен.
flag_post_allowed_groups Группам, которым разрешено отмечать сообщения как спам/офтоп. Да Нет Нет Проверка через Guardian; anonymous_users запрещен.
post_links_allowed_groups Группам, которым разрешено включать ссылки в сообщения. Да Нет Нет Требуется аутентифицированный пользователь; anonymous_users запрещен.
embedded_media_post_allowed_groups Пользователям из этих групп разрешено встраивать медиафайлы в сообщения. Да Нет Нет Проверка действующего пользователя; anonymous_users запрещен.
profile_background_allowed_groups Группам, которым разрешено загружать фон профиля. Да Нет Нет Проверка пользователя; anonymous_users запрещен.
user_card_background_allowed_groups Группам, которым разрешено загружать фон карточки пользователя. Да Нет Нет Проверка пользователя; anonymous_users запрещен.
invite_allowed_groups Группам, которым разрешено приглашать пользователей. Да Нет Нет Проверка через Guardian; anonymous_users запрещен.
ignore_allowed_groups Группам, которым разрешено игнорировать других пользователей. Да Нет Нет Проверка через Guardian; anonymous_users запрещен.
delete_all_posts_and_topics_allowed_groups Группам, которым разрешено удалять сообщения и темы, созданные другими пользователями, и просматривать удаленный контент. Да Нет Нет Проверка через Guardian/текущего пользователя; anonymous_users запрещен.
edit_all_topic_groups Разрешить пользователям из этой группы редактировать заголовки, теги и категории тем других пользователей. Да Нет Нет Разделение raw, затем in_any_groups?; anonymous_users запрещен.
edit_all_post_groups Разрешить пользователям из этой группы редактировать сообщения других пользователей. Да Нет Нет Проверка пользователя через in_any_groups?; anonymous_users запрещен.
change_post_ownership_allowed_groups Разрешить пользователям из этих групп изменять владельца сообщения. Да Нет Нет Проверка текущего пользователя; anonymous_users запрещен.
cross_origin_opener_unsafe_none_groups Скрытые группы переопределения COOP; соответствующим пользователям присваивается Cross-Origin-Opener-Policy: unsafe-none. Да Нет Нет Требует current_user.present?; выбор анонимных пользователей не имеет эффекта в runtime.
user_api_key_allowed_groups Принадлежность к группе требуется для генерации пользовательских API-ключей. Да Нет Нет Проверка текущего пользователя; anonymous_users запрещен.
create_tag_allowed_groups Группам, которым разрешено создавать теги. Да Нет Нет Проверка через Guardian; anonymous_users запрещен.
edit_tags_allowed_groups Группам, которым разрешено редактировать теги, описания тегов и синонимы тегов. Да Нет Нет Проверка через Guardian; anonymous_users запрещен.
tag_topic_allowed_groups Группам, которым разрешено добавлять теги к темам. Да Нет Нет Проверка через Guardian; anonymous_users запрещен.
pm_tags_allowed_for_groups Разрешить членам включенных групп добавлять теги к любым личным сообщениям. Да Нет Нет Проверка через Guardian; anonymous_users запрещен.
lazy_load_categories_groups Ленивая загрузка информации о категориях только для пользователей этих групп. Да Да Да Явная проверка everyone плюс проверка Guardian через in_any_groups?; anonymous_users имеет значение.
chat_allowed_groups Пользователи из этих групп могут общаться в чате, за исключением анонимных пользователей, которые могут только просматривать чат, если добавлены в эту настройку. Да Да Нет Авторизованный чат использует in_any_groups?; анонимный публичный чат явно проверяет anonymous_users.
direct_message_enabled_groups Разрешить пользователям из этих групп создавать личные чаты между пользователями. Да Нет Нет Проверка Guardian для авторизованного чата; нет значимого пути для анонимных личных сообщений.
chat_pinning_messages_allowed_groups Пользователям из этих групп разрешено закреплять сообщения в чате. Да Нет Нет Требуется доступ к чату/текущий пользователь; нет пути для анонимного закрепления.
chat_message_flag_allowed_groups Пользователям из этих групп разрешено отмечать сообщения в чате как спам/офтоп. Да Нет Нет Проверка пользователя; путь для анонимных заблокирован окружающими разрешениями чата.
no_ads_for_groups Не показывать рекламу пользователям из этих групп. Да Нет Нет Добавляется только в сериализатор current_user; нет полезной нагрузки для анонимного текущего пользователя.
adsense_exclude_groups Реклама не будет показываться членам этих групп. Да Нет Нет Флаг рекламы текущего пользователя через in_any_groups?; нет полезной нагрузки для анонимного текущего пользователя.
dfp_exclude_groups Реклама не будет показываться членам этих групп. Да Нет Нет Флаг рекламы текущего пользователя через in_any_groups?.
amazon_exclude_groups Реклама не будет показываться членам этих групп. Да Нет Нет Флаг рекламы текущего пользователя через in_any_groups?.
carbonads_exclude_groups Реклама не будет показываться членам этих групп. Да Нет Нет Флаг рекламы текущего пользователя через in_any_groups?.
adbutler_exclude_groups Реклама не будет показываться членам этих групп. Да Нет Нет Флаг рекламы текущего пользователя через in_any_groups?.
composer_ai_helper_allowed_groups Пользователи из этих групп будут видеть кнопку помощника ИИ в редакторе. Да Нет Нет Проверка авторизованного помощника ИИ через in_any_groups?.
post_ai_helper_allowed_groups Группам пользователей, которым разрешен доступ к функциям помощника ИИ в сообщениях. Да Нет Нет Проверка авторизованного помощника ИИ через in_any_groups?.
ai_pm_summarization_allowed_groups Группам, которым разрешено создавать и просматривать сводки в личных сообщениях. Нет Нет Нет Использует raw user.group_ids, поэтому псевдогруппы не совпадают.
ai_bot_debugging_allowed_groups Разрешить этим группам видеть кнопку отладки, показывающую сырой запрос и ответ ИИ. Да Нет Нет Явно возвращает false для анонимных, затем использует in_any_groups?.
ai_bot_allowed_groups Когда у бота GPT есть доступ к личным сообщениям, он будет отвечать членам этих групп. Да Нет Нет Основные проверки используют in_any_groups?; один путь для песочницы использует raw group_ids.
ai_bot_public_sharing_allowed_groups Разрешить этим группам делиться личными сообщениями ИИ с публикой через уникальную ссылку. Да Нет Нет Явно возвращает false для анонимных, затем использует in_any_groups?.
assign_allowed_on_groups Пользователям из этих групп разрешено назначать темы. Нет Нет Нет Использует raw user.group_ids/GroupUser; у псевдогрупп нет строк.
discourse_post_event_allowed_on_groups Группам, которым разрешено создавать события. Нет Нет Нет Raw groups.where(id: ...); everyone обрабатывается отдельно, но logged_in_users — нет.
discourse_kanban_manage_board_allowed_groups Группам, которым разрешено создавать и настраивать канбан-доски. Да Нет Нет Guardian использует in_any_groups?, но контроллеры записи требуют входа.
create_policy_allowed_groups Принадлежность к группе требуется для добавления политик к сообщениям. Да Нет Нет Проверка сообщения/пользователя через in_any_groups?.
flag_posts_voting_comments_allowed_groups Группам, которым разрешено отмечать комментарии к голосованию как спам/офтоп. Да Нет Нет Проверка пользователя через in_any_groups?.
allow_solved_in_groups Разрешить отмечать решения в сообщениях групп для этих групп. Нет проверки пользователя Нет проверки пользователя Нет проверки пользователя Соответствует topic.allowed_groups личного сообщения, а не членству текущего пользователя.
accept_all_solutions_allowed_groups Группам, которым разрешено принимать решения в любой теме. Да Нет Нет Проверка аутентифицированного/текущего пользователя через in_any_groups?.
discourse_templates_groups_allowed_private_templates Группам, которым разрешено использовать частные шаблоны. Нет Нет Нет Raw GroupUser.exists?; только everyone обрабатывается отдельно.
poll_create_allowed_groups Группам, которым разрешено создавать опросы. Да Нет Нет Проверка действующего/текущего пользователя через in_any_groups?.
styleguide_allowed_groups Ограничивает видимость руководства по стилю членами указанных групп. Да Да Да Контроллер явно обрабатывает anonymous_users; он также позволял анонимным доступ через everyone до изменения.
2 лайка