rostermanager: do not save rosters for unexistant users.
authorMarco Cirillo <maranda@lightwitch.org>
Fri, 05 Apr 2013 04:52:11 +0000
changeset 5429 25333de6e7c7
parent 5428 4cc7df30f521
child 5430 0ad8c623a81a
rostermanager: do not save rosters for unexistant users.
core/rostermanager.lua
--- a/core/rostermanager.lua	Fri Apr 05 04:49:32 2013 +0000
+++ b/core/rostermanager.lua	Fri Apr 05 04:52:11 2013 +0000
@@ -18,6 +18,7 @@
 local bare_sessions = bare_sessions;
 
 local datamanager = require "util.datamanager"
+local um_user_exists = require "core.usermanager".user_exists;
 local st = require "util.stanza";
 
 module "rostermanager"
@@ -105,6 +106,11 @@
 end
 
 function save_roster(username, host, roster)
+	if not um_user_exists(username, host) then
+		log("debug", "not saving roster for %s@%s: the user doesn't exist", username, host);
+		return nil;
+	end
+
 	log("debug", "save_roster: saving roster for %s@%s", username, host);
 	if not roster then
 		roster = hosts[host] and hosts[host].sessions[username] and hosts[host].sessions[username].roster;