2

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

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

我怎样才能做到这一点?

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

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

4

2 回答 2

0

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

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

于 2010-02-07T12:19:57.603 回答
0

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

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

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

于 2010-01-18T01:30:56.260 回答