【问题标题】:How to remove a user from all rosters in Ejabberd如何从 Ejabberd 的所有花名册中删除用户
【发布时间】:2010-01-04 16:30:18
【问题描述】:

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

  1. 删除他的名单
  2. 从他的所有好友名单中删除他

我该怎么做?

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

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

【问题讨论】:

    标签: command-line xmpp ejabberd rostering


    【解决方案1】:

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

    如果用户的联系人也是您的用户(不允许 s2s 连接),那么您可以使用带有交换参数的 delete_rosteritem,或者使用 mnesia/odbc hackery。在联合设置中,您将无法访问联系人的名册,但您可能可以同时发送他的服务器,一个出席取消订阅和一个出席取消订阅节。请参阅RFC 3921 或询问详情。

    很遗憾,我不知道现成的解决方案,但可能会在接下来的几周内提出。

    【讨论】:

      【解决方案2】:

      通常删除用户会取消订阅所有本地用户的名册,并通过服务器到服务器组件向远程用户发送取消订阅请求。您可能想查看ad-hoc commands,其中ejabberd supports。通过这种方式,您可以编写一个工具来从命令行执行此操作,这就是您希望从问题标签中看到的样子。

      Web 管理 UI 可能是一个受欢迎的地方。我知道这就是我用 openfire 完成的地方。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-11-16
        • 2013-06-17
        • 2013-01-27
        • 2021-03-21
        • 1970-01-01
        • 2018-08-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多