(почему объясняется в последнюю очередь)
У нас есть права «Создавать» и «Смотреть» и т. д. Мне нужен простой способ предоставить группе право «Смотреть» для всего сайта, за исключением нескольких областей — по сути, отрицательное право, которое применяется с более высоким приоритетом.
Просто думаю вслух, так как проверка всех возможных вариантов займёт время. Немного надеюсь, что кто-то скажет: «А почему бы вам не сделать это вот так…».
Возможно, я мог бы создать группу, у которой есть только право «Смотреть». Думаю, Discourse достаточно умён, чтобы если у кого-то есть право «Смотреть», а у всех остальных — право «Писать», то эта область станет доступна только для просмотра для данной группы? Это было бы своего рода автоматическим внедрением отрицательного права (самый дешёвый вариант), хотя и не самым логичным. Проблема в том, что даже если это сработает, прохождение по всем областям и добавление группы для «неприятных, но необходимых» пользователей займёт время.
Нельзя удалить пользователя из группы «Все», хм.
Создание нового псевдо-«Все» с правами для всех, кроме проблемных пользователей, — это огромная работа (возможно, не с помощью скрипта, но всё же).
Как я уже сказал, думаю вслух, пытаясь решить проблему… очень надеюсь на озарение :D.
Сама проблема заключается в том, что один пользователь пишет свои сообщения в любую область, которую он в данный момент читает (часто — в самый последний пост чего угодно). Это не критично, за исключением того, что его сообщения настолько бессвязны, что неизбежно будут мешать другим пользователям. Проблема в том, что он абсолютно необходим в одной области (100%, финансовая тема), но я был бы рад ограничить его режимом «Только просмотр» везде в остальных местах.
Большая часть форума состоит из закрытых областей, к счастью, но люди всё равно получают еженедельные письма или уведомления, когда он распространяется в одну из немногих общих областей.