Группы анонимных пользователей

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

Раньше я никогда не писал плагины, но кажется, что это лучше всего реализовать именно через плагин. Когда пользователь включает анонимность, создаётся учётная запись, и я назначаю все его текущие группы анонимному пользователю. Сработает ли такой подход? Я использую API для назначения и удаления групп. Можно ли добавить триггер, чтобы эти изменения также применялись к анонимному пользователю?

Есть ли какие-либо другие последствия, которые я упускаю?

Возможно, протестировать концепцию, используя запрос Data Explorer, который возвращает список анонимных имен пользователей, связанных с реальными пользователями, являющимися членами указанной группы. Затем вы можете использовать функцию «Массовое добавление в группу», чтобы добавить этих пользователей в группу.

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

--[params]
-- string :group_name

WITH target_users AS (
SELECT
user_id AS master_user_id
FROM group_users gu
JOIN groups g
ON g.id = gu.group_id
WHERE g.name = :group_name
)

SELECT
u.username
FROM target_users tu
JOIN anonymous_users au
ON au.master_user_id = tu.master_user_id
JOIN users u
ON u.id = au.user_id

Если какие-либо члены группы перешли в анонимный режим, выполнение запроса вернет результаты, похожие на эти:

Если у вас не очень большое количество пользователей, вы можете просто скопировать и вставить имена пользователей в форму массового добавления группы:

Вам следует учитывать настройку сайта «Длительность существования анонимного аккаунта (минуты)». Она определяет, как долго будут сохраняться анонимные аккаунты после того, как пользователь выйдет из анонимного режима.

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

Обратите внимание, что анонимный режим не связан с тем, что происходит при анонимизации пользователя через его административную страницу. В этом случае пользователь действительно становится анонимным, и все его идентифицирующие данные удаляются.

Мне интересно, чего вы пытаетесь достичь, но мне неизвестно ни об одном сайте, который использовал бы анонимный режим подобным образом. Возможно, имеет смысл протестировать это на небольшой группе пользователей и посмотреть, как это сработает, прежде чем вкладывать много усилий в разработку плагина.

Спасибо за детали!

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

Мы убрали это из краткосрочных целей, которые хотим достичь.

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