Я настраиваю новую платформу Discourse и нуждаюсь в вашей помощи по одному вопросу. В планируемой платформе я хочу реализовать конфигурацию, при которой содержимое в определённой категории могут просматривать только создатель темы и администраторы. Этот раздел будет фактически работать по принципу «Отчёты об ошибках». Крайне важно, чтобы сообщённые ошибки не были видны другим пользователям и, следовательно, не могли быть ими использованы, а оставались доступными исключительно для автора отчёта и администраторов. Как правильно настроить такое ограничение?
Вы можете создать группу для репортёров багов, а затем использовать настройки безопасности в нужной категории, чтобы разрешить доступ только этой группе и администраторам (или сотрудникам, если вы хотите, чтобы модераторы имели доступ).
Администратор → Группы → + Новая группа
На странице категории, которую вы хотите защитить, нажмите на значок гаечного ключа в правом верхнем углу. Это откроет настройки конкретной категории, включая раздел безопасности. Там вы сможете добавить новую группу с нужными вам разрешениями.
Привет, @Lillinator, благодарю вас за ответ. Когда я тестирую ваше предложение, участники группы смогут видеть все сообщения. На самом деле моя цель здесь заключается в том, чтобы тема была видна только пользователю, который её создал. Другие пользователи не должны иметь доступа к темам, созданным другими пользователями, и не должны вступать в какое-либо взаимодействие.
Например: Пользователь А создал важную тему в категории «Отчёты об ошибках» для сообщения о проблеме. Эта тема не должна быть видна пользователям B, C или D в том же форуме. Только пользователь А, создавший тему, а также модераторы и администраторы должны иметь возможность просматривать тему, открытую пользователем А.
Ага, понятно. Хм, я не уверен, что это возможно. Возможно, кто-то другой знает. Интересно, можно ли сделать плагин. Извините, я неправильно понял: вы хотели дать доступ только автору отчёта об ошибке, а не группе репортёров.
Думаю, групповой почтовый ящик отлично подойдёт для этой задачи. Пользователь A отправит сообщение в @bug-report, и оно появится в групповом почтовом ящике @bug-report, где его увидят все участники группы. При этом только те, кто является участником конкретного сообщения, смогут видеть свои личные сообщения. Подойдёт ли такой вариант?
Я понимаю ваше предложение, однако оно должно быть оформлено как тема, аналогичная форумной платформе. У этой темы есть специальный шаблон, и ожидается, что пользователи будут сообщать об ошибках, следуя ему.
Поступающие уведомления об ошибках затем проверяются модераторами и далее передаются администраторам. Лицо, создавшее тему, также получает ответы, касающиеся его отчёта, непосредственно в рамках этой темы от администраторов. Несмотря на то, что система работает точно так же, как обычный форум, единственное отличие заключается в том, что тему может видеть только её создатель.
Я считаю, что групповые почтовые ящики по своей сути имеют ряд недостатков (например, этот).
Реализовать это через плагин вполне возможно, хотя может потребоваться время, чтобы всё отладить. Просто у меня пока не было ни времени, ни достаточных оснований для таких усилий (если у вас есть бюджет и/или навыки разработки, давайте обсудим).
И это не разрешения на уровне темы, а просто ещё одно разрешение категории. Я могу представить, как будут работать некоторые части, но есть множество мелких деталей, в которых я не уверен, как их реализовать.
Кажется, это может стать интересным проектом. Прямо сейчас я не смогу помочь, но если у вас найдётся время через месяц-два, напишите мне, и, возможно, мы сможем поработать над этим вместе. Конечно, если бы за это платили, найти время было бы проще!
По правде говоря, эта функция, как и в других платформ для форумов, должна быть здесь тоже. Поскольку она решает общую потребность, её отсутствие кажется мне довольно непонятным. В результате я провёл небольшое исследование, но, к сожалению, мои усилия не принесли желаемых результатов. Требование будет касаться конкретно разрешения «Создать/Ответить», при этом разрешение «Просмотр» будет доступно только автору темы и администраторам.
Верно. Существует бы разрешение на создание без права чтения, но позволяющее просматривать темы, созданные пользователем. Так что здесь нужно было бы добавить новый тип:
И затем пришлось бы изменить множество кода, ссылающегося на эти типы. Или, возможно, для плагина было бы логичнее добавить CategoryCustomField, который обходил бы ограничения создания, а также обновить сериализаторы категорий и тем, чтобы включить теперь доступные темы.
Может быть, вы создадите тему в категории с разрешением на создание, а затем (или аналогичным образом) плагин переместит её в подкатегорию, которую видят только сотрудники. После этого сериализатор категорий можно было бы доработать, чтобы извлекать темы, принадлежащие пользователю, из скрытой подкатегории в основную категорию. Это вообще не потребовало бы нового разрешения для категории, и если плагин будет удалён, темы останутся обычными темами в категории, доступной только сотрудникам. Прототип такого решения (без надлежащих тестов и прочего) мог бы быть создан довольно быстро. Возможно, я займусь этим сегодня позже (хотя боюсь, что у меня может быть другая работа).