aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/mod_c2s.lua
diff options
context:
space:
mode:
authorKim Alvefur <zash@zash.se>2017-07-28 13:15:29 +0200
committerKim Alvefur <zash@zash.se>2017-07-28 13:15:29 +0200
commit73b75571e6546448dac8a67c6c231c14851ccac1 (patch)
treee8ab717facc4069414f7377ed320eeac03dccc66 /plugins/mod_c2s.lua
parentcc8653d31c87dcdf4d140697e87b57ca5130d9d5 (diff)
downloadprosody-73b75571e6546448dac8a67c6c231c14851ccac1.tar.gz
prosody-73b75571e6546448dac8a67c6c231c14851ccac1.zip
core.usermanager, various modules: Disconnect other resources on password change (thanks waqas) (fixes #512)
Diffstat (limited to 'plugins/mod_c2s.lua')
-rw-r--r--plugins/mod_c2s.lua12
1 files changed, 12 insertions, 0 deletions
diff --git a/plugins/mod_c2s.lua b/plugins/mod_c2s.lua
index cfeb0f0e..fbc22be6 100644
--- a/plugins/mod_c2s.lua
+++ b/plugins/mod_c2s.lua
@@ -203,6 +203,18 @@ module:hook_global("user-deleted", function(event)
end
end, 200);
+module:hook_global("user-password-changed", function(event)
+ local username, host, resource = event.username, event.host, event.resource;
+ local user = hosts[host].sessions[username];
+ if user and user.sessions then
+ for r, session in pairs(user.sessions) do
+ if r ~= resource then
+ session:close{ condition = "reset", text = "Password changed" };
+ end
+ end
+ end
+end, 200);
+
--- Port listener
function listener.onconnect(conn)
local session = sm_new_session(conn);