Как удалить пользователя из всех списков в Ejabberd - PullRequest
2 голосов
/ 04 января 2010

Я хочу удалить учетную запись чата и одновременно:

  1. Удалить свой список
  2. Удалить его из всех списков его друзей

Как я могу это сделать?

Я пробовал различные варианты ejabberdctl. Я могу отменить регистрацию пользователя и даже очистить его список, но не могу найти способ удалить его из других списков.

PS: все мои пользователи в настоящее время находятся на одном сервере / хосте

Ответы [ 2 ]

0 голосов
/ 07 февраля 2010

Обычно удаление пользователя отменяет его подписку на все локальные списки пользователей, а также отправляет удаленным пользователям запросы на отмену подписки через компонент сервер-сервер. Возможно, вы захотите взглянуть на специальные команды , которые ejabberd поддерживает . Таким образом, вы можете написать инструмент для выполнения этой команды из командной строки, как вы хотите, используя теги вопроса.

Пользовательский интерфейс веб-администратора может быть популярным местом для этого. Я знаю, что именно там я и сделал это с помощью openfire.

0 голосов
/ 18 января 2010

Если вы сохраняете данные реестра в мнезии (mod_roster), а не во внешней базе данных (mod_roster_odbc), то mod_admin_extra:delete_rosteritem/4 может помочь вам удалить реестр пользователя. В противном случае вам придется использовать функциональность odbc_queries.

Если контакты пользователя также являются вашими пользователями (соединения s2s не разрешены), то вы можете использовать delete_rosteritem с замененными аргументами или использовать mnesia / odbc hackery. В федеративной настройке у вас не будет доступа к списку контактов, но вы, вероятно, можете отправить его серверу, как отписаться от присутствия, так и отменить подписку о присутствии. См. RFC 3921 или запросите подробности.

К сожалению, я не знаю готового к использованию решения, но оно может быть предложено в ближайшие недели.

...