Использование категорий и подкатегорий для отображения контента пользователям по логике «ИЛИ» очень просто: например, если пользователь состоит в группе X или группе Y, он может видеть соответствующую категорию или подкатегорию.
Возможно ли эффективно реализовать логику «И», чтобы пользователь мог видеть категорию или подкатегорию только при условии, что он состоит одновременно и в группе X, и в группе Y?
Наш сценарий использования: у нас есть три уровня доступа. Их проще всего представить как студентов первого, второго и третьего курса. Студенты первого курса видят только контент первого курса, студенты второго курса — контент первого и второго курсов, а студенты третьего курса — весь контент. Это работает отлично.
Мы хотим добавить ещё один уровень: пользователи с уровнем доверия 3 должны получать ранний доступ к определённым событиям и ресурсам.
Сначала я попытался реализовать это, создав незаметные события для разных уровней курсов и отправляя ссылки на эти события пользователям с уровнем доверия 3. Однако любой пользователь, у которого уведомления настроены на отслеживание событий первого, второго или третьего курса, также может мгновенно увидеть эти события, а не только пользователи с уровнем доверия 3.
Другой вариант — создать категорию «Награды для уровня доверия 3» с подкатегориями для первого, второго и третьего курсов. Но ограничить права доступа таким образом невозможно: поскольку группы первого, второго и третьего курсов должны иметь видимость категории, все пользователи этих групп (независимо от уровня доверия) смогут заходить в подкатегории.
Один из очень громоздких способов — экспортировать пользователей с уровнем доверия 3, затем экспортировать пользователей, например, второго курса, объединить их в Excel, найти дубликаты и импортировать этих дублирующихся пользователей в группу с названием вроде «Уровень доверия 3 и второй курс». Это сработает, но потребует значительных ручных усилий каждый раз, а нам нужно выполнять это действие регулярно.
Есть ли идеи, как достичь того же результата другими способами? Может быть, пользовательский плагин или скрипт могли бы хотя бы автоматизировать процесс экспорта и импорта?
Заранее спасибо.