如何从Ejabberd中的所有名单中删除用户

时间:2010-01-04 16:30:18

标签: command-line xmpp ejabberd rostering

我想删除一个聊天帐户,同时:

  1. 删除他的名册
  2. 从他所有的朋友名单中删除他
  3. 我该怎么做?

    我尝试了ejabberdctl的各种选项。我可以取消注册用户,甚至清除他的名单,但我找不到办法将他从其他名单中删除。

    PS:我的所有用户当前都在一台服务器/主机上

2 个答案:

答案 0 :(得分:0)

如果您将名册数据保存在mnesia(mod_roster)而不是外部数据库(mod_roster_odbc)中,那么mod_admin_extra:delete_rosteritem/4可能会帮助您删除用户的名单。否则你将不得不使用odbc_queries功能。

如果用户的联系人也是您的用户(不允许s2s连接),那么您可以将delete_rosteritem与交换参数一起使用,或者使用mnesia / odbc hackery。在联合设置中,您将无法访问联系人的名单,但您可以发送他的服务器,存在取消订阅和存在未订阅的节。请参阅RFC 3921或询问详细信息。

不幸的是,我不知道一个现成的解决方案,但在接下来的几周内可能会提出一个解决方案。

答案 1 :(得分:0)

通常删除用户将取消订阅所有本地用户的名单,并通过服务器到服务器组件发送远程用户取消订阅请求。您可能需要查看ad-hoc commandsejabberd supports。通过这种方式,您可以编写工具脚本,从命令行执行此操作,这就是您希望从问号标签中获取的内容。

网络管理员用户界面可能是一个受欢迎的地方。我知道这是我用openfire完成它的地方。