Как я могу получить чат-систему на основе ролей в веб-приложении. Например. SuperAdmin может общаться с кем-либо в организации. Администратор может общаться только с ведущими. Ведущие могут сообщать только администратору и их командам. Аудиторы могут общаться с соответствующими руководителями и их пользователями. Пользователи могут общаться только с соответствующими аудиторами.
Одна идея, о которой я думаю, никто раньше не пытался:
Отказ от ответственности: я не знаю, возможно ли это, и, как я уже сказал, я сомневаюсь, что кто-то это делал раньше, потому что то, о чем я упоминал, использует недавно доступные функции. Если вы попробуете и, наконец, получите его работу, было бы замечательно, если бы вы добавили комментарий, в котором показано, как вы выполнили эту замечательную задачу. Удачи! :)
У меня есть аналогичная проблема, которая заключается в том, что я хочу, чтобы мои пользователи могли разговаривать только с людьми в своих соответствующих списках. Таким образом, пользователь A может только пользователь сообщения B, если у пользователя A есть пользователь B, а у пользователя B есть пользователь A в своем списке. Вы знаете, можно ли достичь этого с помощью mod_filter? (Я новичок в ejabberd)
Я боюсь, что нет простого способа сделать это - для него нет готовых XMPP XEP. Каждый может отправить сообщение всем.
Вероятно, вы можете просто построить эту логику в своем клиентском приложении. Например, чтобы назначить разные теги (superadmin/admin/lead/) вашим пользователям, а затем решить, перед тем, как болтать, какой тег у обоих пользователей есть и может они обмениваться или нет.
Что касается ролей XMPP - есть только роли в контексте группового чата. https://xmpp.org/extensions/xep-0045.html. Пользователи в групповом чате имеют разные роли/разрешения.