Создать категорию, закрытую для одной группы, но открытую для других

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

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

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

Надеюсь, кто-то уже сталкивался с этой проблемой и сможет поделиться своим творческим решением :smiley: Если нужна дополнительная информация, дайте знать.

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

На самом деле нет встроенного способа создать группу с правами меньшими, чем у группы «все».

Я думаю, вам нужно сделать следующее:

  • Создать новую группу для большинства ваших пользователей, например @members.
  • Добавить всех существующих пользователей в эту группу.
  • (Опционально) Добавить этих новых пользователей в другую группу, например @guests.
  • Обновить разрешения категорий, чтобы определить уровень доступа для @members по сравнению с @guests.

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

Например, CSV-файл, созданный при экспорте пользователей, содержит столбец с названиями групп, а функция массового приглашения также использует CSV-файл с названиями групп для добавления пользователей в группы.

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

Сколько примерно у вас сейчас пользователей, групп и категорий?

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

Кстати, большое спасибо за быстрый ответ! Очень ценю это.

Если у вас есть доступ к Rails, вы можете ознакомиться с Административными массовыми операциями, чтобы узнать способы ускорения выполнения части этой работы.

Спасибо, Джей. Я тоже займусь этим :slight_smile:

Поскольку вы являетесь клиентом с размещённым решением, вы также можете напрямую обратиться к нам, чтобы объяснить, что вы планируете делать, и мы сможем предоставить вам более персонализированную помощь. Ищите ссылку на поддержку на вашей панели администратора!