diff options
author | Kim Alvefur <zash@zash.se> | 2017-07-28 13:15:29 +0200 |
---|---|---|
committer | Kim Alvefur <zash@zash.se> | 2017-07-28 13:15:29 +0200 |
commit | 8dad96d3f6e88e59ed6cd84a62192b15b3374145 (patch) | |
tree | e8ab717facc4069414f7377ed320eeac03dccc66 /plugins/mod_c2s.lua | |
parent | 239f4bd260a50271572c763403152e11b3fd6381 (diff) | |
download | prosody-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.lua | 12 |
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); |