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
commit8dad96d3f6e88e59ed6cd84a62192b15b3374145 (patch)
treee8ab717facc4069414f7377ed320eeac03dccc66 /plugins/mod_c2s.lua
parent239f4bd260a50271572c763403152e11b3fd6381 (diff)
downloadprosody-8dad96d3f6e88e59ed6cd84a62192b15b3374145.tar.gz
prosody-8dad96d3f6e88e59ed6cd84a62192b15b3374145.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);