如何从 Ejabberd 的所有花名册中删除用户
我想删除一个聊天帐户,同时:
- 删除他的名册 将
- 他从他的所有好友名册中删除
我该怎么做?
我尝试过 ejabberdctl 的各种选项。我可以注销用户,甚至清除他的名册,但我找不到方法将他从其他名册中删除。
PS:我的所有用户当前都在一台服务器/主机上
I want to delete a chat account and at the same time :
- Delete his roster
- Delete him from all of his friends rosters
How can i do this?
I have tried the various options of ejabberdctl. I can unregister a user, and even purge his roster, but I cant find a way to remove him from other rosters.
PS : All my users are currently on one server/host
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您将名册数据保存在 mnesia (
mod_roster
) 中而不是外部数据库 (mod_roster_odbc
) 中,则mod_admin_extra:delete_rosteritem/4
可能会帮助您删除用户的花名册。否则,您将不得不使用 odbc_queries 功能。如果用户的联系人也是您的用户(不允许 s2s 连接),那么您可以使用带有交换参数的 delete_rosteritem,或使用 mnesia/odbc hackery。在联合设置中,您将无权访问联系人的花名册,但您可以向他的服务器发送两个消息:存在取消订阅和存在取消订阅节。请参阅 RFC 3921 或询问详细信息。
不幸的是,我不知道现成的解决方案,但可能会在接下来的几周内提出一个。
If you save the roster data in mnesia (
mod_roster
) and not in an external database (mod_roster_odbc
), thenmod_admin_extra:delete_rosteritem/4
might help you to delete the user's roster. Otherwise you will have to use odbc_queries functionality.If the user's contacts are your users as well (no s2s connections allowed), then you might use delete_rosteritem with swapped arguments, or use mnesia/odbc hackery. In a federated setup you will not have access to the contact's roster, but you can probably send his server both, an presence unsubscribe and a presence unsubscribed stanza. See RFC 3921 or ask for detail.
Unfortunately, I do not know a ready-to-use solution, but might come up with one in the following weeks.
通常,删除用户将从所有本地用户名册中取消订阅该用户,并通过服务器到服务器组件向远程用户发送取消订阅请求。您可能需要查看临时命令,其中ejabberd 支持。通过这种方式,您可以编写一个工具来从命令行执行此操作,这就是您想要从问题标签中看到的内容。
网络管理 UI 可能是一个很受欢迎的地方。我知道这就是我用 openfire 完成的地方。
Usually deleting a user will unsubscribe them from all the local user's rosters, as well as send remote users unsubscribe requests through the server-to-server component. You may want to look at ad-hoc commands, which ejabberd supports. This way you can script a tool to do it from the command line, which is what it looks like you want from your question tags.
The web admin UI may be a popular place to do it. I know that is where I've done it with openfire.