Присвоить всем пользователям тег группы по умолчанию (примеры пользователей)

Всем привет,

Я активно изучаю Discourse (только что запустил один на Vultr :slight_smile:). После одного из моих вопросов о групповых тегах Group tagging notification (возможность присваивать теги группам).

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

Это позволяет, например, администраторам принудительно отправлять пользователям уведомления о определённых постах (конечно, это полезно только для внутреннего использования :slight_smile:).

Теги пользователей? Теги не работают так, и не предназначены для такого использования. Тогда у вас было бы огромное количество тегов. Вы, возможно, имели в виду упоминания?

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

Вы имели в виду @trust_level_0?

На сколько мне известно, это не достигает всех. Однако я могу смешать это с @here. Есть настройка max users notified per group mention, но я не знаю, может ли она быть бесконечной или невероятно большой.

Хорошо, я хочу иметь возможность упоминать @all, например. Это должно уведомлять всех пользователей на платформе. Если переименовать группу @trust_level_0 в @all и упомянуть её в сообщении, получат ли все пользователи уведомление?

Когда кто-то получает более высокий уровень доверия, будет ли этот пользователь также отключён от группы @trust_level_0?

Нет. Все там находятся.

Другое дело, если бы TL1 был лучшим выбором, то есть все лучше, чем TL0.

Вы можете увеличить это значение до 2000000000

Единственная проблема в том, что вы не можете переименовать группу trust_level_group_0 https://meta.discourse.org/t/is-it-possible-to-rename-the-trust-level-0-group-to-something-else/96639.

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

Не очень красиво, но это сработает :okay:

Нет. Создайте группу и добавьте людей. Тогда они смогут упоминать @group.

Не переименовывайте группы по умолчанию. Это запутает (если вообще позволит).

Вы можете переименовать группы по умолчанию через admin/customize/site_texts :+1: Чтобы изменить уровень доверия 0, используйте groups.default_names.trust_level_0

Имя не должно совпадать с именем существующего пользователя или группы, иначе переименование не применится. Изменение выполняется в фоновом задании и будет применено после его выполнения. Вы можете ускорить процесс, запустив Jobs::EnsureDbConsistency через /sidekiq/scheduler

Мне было интересно, почему обновление заняло так много времени (я его тестировал). Но когда вы меняете название группы, можно ли будет упоминать её через @newGroupname?

Если вы измените имя через admin/customize/site_texts, оно также должно отразиться в выпадающих меню и при @упоминаниях и т.д. :+1:

На самом деле, я не уверен, что проверял @упоминание. Позвольте мне просто проверить…

Я проверил, и это работает. :+1:

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

Причина, по которой я задаю этот вопрос, заключается в следующем: если вы используете, например, слой аутентификации от Google (OAuth2), вы не можете вручную назначать пользователя в определенную группу каждый раз. Поэтому вам придется либо:

  • Изменить имя группы по умолчанию
  • Запустить вебхук с помощью PHP-скрипта, который создаст обратный вызов и добавит пользователя в эту группу.

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

Есть ли ещё какие-то причины, по которым вы не рекомендуете этого делать?

Уровень доверия используется в тысячах мест. Если trust_level_0 назвать «not_trust_level», и вы начнёте отлаживать какую-либо проблему, связанную с уровнями доверия, вы, скорее всего, запутаетесь. «Погодите. trust_level_0 не существует. Как это вообще работает!?» — можете вы воскликнуть.

Я использую пользовательские названия уровней доверия без проблем, за исключением упомянутого конфликта между существующим именем пользователя и новым названием группы (решено здесь Trust_level default name?). Разве не вся суть раздела с пользовательским текстом в меню администратора заключается в том, чтобы внести одно изменение и сразу обновить текст во всех тысячах местах интерфейса, где он используется?

По моему опыту, изменение названия уровня доверия — это простой способ придать вашему форуму более целостную тематику, да и просто веселее.

Тренер > Ас > Лидер гораздо более осмысленно, соответствует бренду и интереснее для моего сообщества, чем trust_level_1 > trust_level_2 > trust_level_3

Рад, что у вас всё работает! Возможно, я просто слишком ригиден.

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

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

Это удивило нескольких человек. :slight_smile:

Что вы имеете в виду под поэтапным добавлением пользователей?