Я рассматриваю возможность миграции с XenForo, и чем больше я изучаю Discourse, тем больше понимаю, насколько всё здесь просто, но при этом не упрощено. Напротив — всё гораздо мощнее.
Мне ещё предстоит разобраться с несколькими настройками и, возможно, преодолеть некоторые ментальные барьеры, связанные с тем, как работают группы, значки и права доступа.
Я опишу, как я использовал эти функции в XenForo, и буду благодарен за предложения, как этого можно достичь в Discourse. Пожалуйста, укажите мне верное направление.
Группы как права доступа
У меня было несколько групп пользователей, выстроенных в иерархию, и права доступа были настроены в зависимости от их статуса. Я вижу, что уровни доверия — это схожая и более удобная концепция, но есть ли у меня возможность создать пользовательскую группу с правами доступа? Например, если я хочу лишить группу права добавлять аватары и вручную добавлю в неё участников.
Группы как этап инициации
Первые X сообщений нового участника проходят модерацию, прежде чем он перейдёт в группу, позволяющую публиковать контент без ограничений.
Группы как звания в иерархии
Пример званий в иерархии, основанных на активности:
- Солдат (50 сообщений, 50 лайков)
- Сержант (100 сообщений, 100 лайков)
- Капитан (100 сообщений, 100 лайков, 1 год в сообществе)
- Командир (500 сообщений, 500 лайков, 2 года в сообществе)
Пользователи поднимаются по иерархии в зависимости от своей активности и получают звания, которые отображаются рядом с их именами. Я вижу, что для этого есть значки, и их можно использовать как пользовательские заголовки. Но похоже, что это либо/или. Я хочу, чтобы были видны и звание в иерархии, и пользовательский заголовок одновременно.
Предполагаю, что для критериев активности мне придётся написать пользовательский SQL для значков?
Группы как ограниченный доступ к категориям
Думаю, этот вариант лучше всего подходит для моих нужд. Просто нужно настроить права на просмотр, ответ и создание.
Исходя из моего ограниченного опыта, я предполагаю, что могу создать пользовательские группы и назначить им указанные выше права для каждой категории или подкатегории отдельно. Пожалуйста, подтвердите это.
Если это так, как разрешить участникам автоматическое вступление в группу на основе их активности? Например, любой, у кого более 100 сообщений, получит автоматический доступ. Помните, что конечная цель — предоставить доступ к категории.
Во-вторых, как выборочно отозвать доступ к категории для пользователей? Например, если у меня есть участник, который соответствует критерию количества сообщений, но является проблемным. Как я могу отозвать его доступ с помощью приоритетного запрета?
Я вижу, что в Discourse есть только аддитивные права доступа, а не приоритетные запреты.
Группы как подписки
В продолжение вышеизложенного, я хотел бы, чтобы пользователи могли приобретать подписки для получения доступа к группе, и когда подписка истекает, они удалялись из группы (и, следовательно, теряли доступ к категории).
Но если они уже состоят в другой группе благодаря активности (100 сообщений), то они всё равно сохраняют доступ к категории, даже если их подписка истекла. Аддитивные права снова приходят на помощь?