Альтернативные пути регистрации

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

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

Желательно, чтобы процесс регистрации для обычных пользователей отличался от процесса для архитекторов, так как для последних предусмотрено множество дополнительных полей, неактуальных для публики. Также у обычных пользователей должно быть меньше опций в панели управления (например, я не хочу предоставлять им функционал рассылки, доступный архитекторам). Кроме того, обычные пользователи никогда не должны иметь возможности повысить свой уровень доверия таким образом, чтобы им стал доступен контент закрытых разделов.

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

Как лучше всего решить эту задачу?

Думаю, можно сделать что-то подобное, используя Custom Wizard Plugin 🧙. Выберите, являетесь ли вы архитектором, и это определит другой путь регистрации. У меня был этот плагин 3–4 года назад, поэтому я не очень хорошо помню все его функции.

К сожалению, похоже, что этот плагин будет стоить 50 долларов США в месяц для получения любой условной функциональности (что мне и нужно, если я правильно понял) — это утроит текущую стоимость хостинга всего форума, и все эти расходы лягут на мои личные средства.

Привет :wave:

Думаю, большинство этих функций доступно с помощью: групп, разрешений категорий, пользовательских полей и автоматизации.

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

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

Например:

Вариант пользовательского поля Группа
архитектор → архитектор
непрофессионал → непрофессионал

Наконец, настройте разрешения для категорий этих групп.

  • Группа «архитекторы» может видеть категории «архитекторы» и «непрофессионалы»
  • Группа «непрофессионалы» может видеть категорию «непрофессионалы»

Надеюсь, это поможет и даст некоторые идеи. :slight_smile:

Спасибо, @Don! Есть что поинтересоваться!

При изучении плагина Discourse Automation по какой-то причине кажется, что нет возможности указать, к какой группе будут назначаться новые пользователи, затронутые автоматизацией.

Вы сможете добиться желаемого с помощью Custom Wizard Plugin 🧙 на бесплатном тарифе. И ваше сообщество почти наверняка получит право на бесплатную подписку для сообществ, если вам действительно потребуются более продвинутые функции.

Я бы поступил следующим образом:

  1. Ограничить доступные UCF тем, что вы хотите собирать от обычных участников.
  2. Использовать один вопрос для идентификации тех, кто должен стать полноценными участниками уровня “Архитектор”.
  3. Этот UCF может затем блокировать процесс присоединения через Wizard, который можно использовать для добавления участников в указанную группу и запроса всех остальных UCF / данных, которые вам нужны.

Спасибо, @nathank!

Я ещё раз всё проверю.

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

К сожалению, по крайней мере плагин автоматизации Discourse, похоже, не различает ничего, кроме простого состояния «заполнено/не заполнено» для этого поля пользовательских данных (по сути, это просто галочка). Предполагаю, что то же самое может относиться и к плагину Custom Wizard?

** РЕДАКТИРОВАНИЕ ** По какой-то причине я даже не могу установить этот конкретный плагин Discourse Custom Wizard Plugin install failed - Support - Pavilion — сообщу здесь, как только проблема будет решена.
** РЕДАКТИРОВАНИЕ ** Теперь установлен (была использована неверная путевая строка в nano).

Вот документ о том, как настроить: Add users to groups through custom field automation

Возможно, это подойдет для вашего процесса регистрации: Discourse Authentication Validations

Спасибо, @Don. Ведут ли себя другие группы (например, «Public» на скриншоте ниже) так же, как и предопределённые группы уровня доверия? Если да, то можно ли предотвратить автоматическое повышение уровня доверия/разрешений для пользователей на основе их активности? Или такое поведение свойственно только явно созданным группам уровня доверия?

Вы можете установить уровень доверия для автоматического присвоения группе «Public».
/g/group_name/manage/membership

Если, например, установить значение 1, то пользователи этой группы будут зафиксированы на уровне доверия 1. Это полезно, если вы автоматически добавляете людей в эту группу при регистрации — тогда они автоматически получат уровень доверия 1 (зафиксированный). Или, если пользователь уже зарегистрирован, но находится ниже уровня доверия 1, то после добавления в эту группу он также достигнет уровня доверия 1 (зафиксированный). Таким образом, они не смогут перейти на более высокие уровни доверия.

Однако этот процесс не работает в обратную сторону: если вы добавите пользователя с уровнем доверия 1 или выше в эту группу, он не будет зафиксирован на уровне доверия 1.


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

Спасибо, @Don!

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

Хм, я не уверен насчёт этого :thinking: Разве это применимо только к повышениям до TL3, если авто-повышение установлено на 2?

Редактирование: Ошибся, спасибо @Moin за уточнение и извините за неверную информацию. Мой предыдущий ответ не позволит пользователям оставаться на выбранном уровне TL.

Этот случай использования также интересен мне. Похожее сообщество, но не архитекторы, а системные моделисты. Спасибо @Paul_King за продвижение этого вопроса.

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

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

Я бы поступил так:

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

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

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

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

Имейте в виду, что при использовании гибридного форума вы потеряете часть функциональности. В частности, Oneboxing не разрешён для ограниченных категорий (если только это не внутри самой этой категории).

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

А как насчёт

если бы можно было создать бесплатную подписку?

Я вижу, что она включена в тарифы Standard и выше для размещённого Discourse.