Если (вы уже состоите в группе A)
Вы можете свободно вступить в эту группу
Иначе
Вы должны отправить запрос на вступление
Сценарий использования: у нас есть внешние подрядчики. Мы хотим предоставить им доступ к Discourse. В настоящее время они могут свободно вступать в те же группы, что и наш персонал. Это создает проблему конфиденциальности.
Если мы сделаем вступление в группу зависимым от запросов на вступление, то я буду постоянно получать такие запросы, которые все равно буду автоматически принимать. Более того, у меня выработается привычка принимать их по умолчанию, и я неизбежно случайно приму запрос от подрядчика, полностью сводя на нет всю цель.
Наш персонал должен иметь возможность просто вступать в группы, которые их интересуют, тогда как подрядчики должны иметь возможность вступать только при наличии специального разрешения.
Группы — это коллекции пользователей, которые можно использовать для управления доступом к категориям. Не могли бы вы просто предоставить вашим сотрудникам доступ ко всем категориям, не требуя присоединения к группе? (добавьте группу сотрудников ко всем этим категориям). Или вы используете группу для чего-то другого?
Сомневаюсь, что это скоро попадёт в основную версию, но это может реализовать плагин.
Извините, если эти предложения вам уже известны, и на самом деле вы хотите именно эту функцию.
@Tris20 Я немного запутался, но разве это не обычная функция, где можно разрешить доступ к определённым категориям в зависимости от группы, например, группы подрядчиков? Или что именно вы пытаетесь реализовать изначально?
Если подрядчик является участником этой конкретной группы, почему ему нужно состоять в ещё одной группе, чтобы получить доступ к другой группе?
Это значит, что отделы HR, финансов и юриспруденции увидят категории, перечисленные выше,
Поэтому, если мы предоставим всем сотрудникам доступ ко всем категориям, это создаст проблемы с конфиденциальностью. Создав группу для каждой категории, мы точно знаем, кто имеет доступ к информации.
Кроме того, категорий будет довольно много. Нам гораздо проще использовать единый подход к категориям: одна группа участников и одна группа модераторов для каждой категории. Категория видна только если вы являетесь участником соответствующей группы. Например, вы видите категорию Docker только если вступили в группу Docker.
Таким образом, сотрудники просто вступают в группу или покидают её, если хотят видеть соответствующую категорию. Поэтому общая группа «сотрудники» не решит эту задачу (хотя у нас она уже есть для общих нужд).
Если у меня есть три подрядчика — по одному для каждой категории:
Docker
Grafana
Linux
то они не должны иметь возможности просматривать категории, за которые они не отвечают.
Значит ли это, что мне нужно создать группы «Подрядчики Docker», «Подрядчики Grafana» и т. д.? Но создавать такие группы для всех категорий невозможно.
Наиболее эффективный способ управления такой ситуацией — создать группу «Подрядчики» с использованием автоматического назначения на основе адреса электронной почты, например @external.com. Тогда я смогу ограничить доступ именно для этих пользователей.
Однако каждый участник группы подрядчиков отвечает за разные инструменты и нуждается в доступе к разным разделам. Следовательно, я либо предоставляю группе подрядчиков доступ ко всем категориям (что сводит на нет всю задумку), либо создаю отдельную группу подрядчиков для каждой категории (абсолютно неприемлемо), либо… разрешаю пользователям уже существующей группы (все сотрудники) свободно вступать в группу.
В целом, наличие подрядчиков означает, что я вообще не могу использовать функцию «свободного вступления».
Два схожих запроса на реализацию функций, которые можно было бы решить с помощью этого предложения.
Вышеизложенное предложение позволило бы всем участникам свободно вступать в группы (и связанные с ними категории), если они состоят в группе «добросовестные пользователи» (или, возможно, даже имеют более высокий уровень доверия!). Тем, кто не достиг этого уровня доверия или не входит в группу «добросовестные пользователи», необходимо вступать по запросу.
Аналогично, если тема находится в определённой категории.