plugins/muc/muc.lib.lua
changeset 6136 2068242028ff
parent 6135 6b061f8c6e11
child 6137 7db24f237a83
equal deleted inserted replaced
6135:6b061f8c6e11 6136:2068242028ff
   478 
   478 
   479 module:hook("muc-occupant-pre-join/password", function(event)
   479 module:hook("muc-occupant-pre-join/password", function(event)
   480 	local room, stanza = event.room, event.stanza;
   480 	local room, stanza = event.room, event.stanza;
   481 	local from, to = stanza.attr.from, stanza.attr.to;
   481 	local from, to = stanza.attr.from, stanza.attr.to;
   482 	local password = stanza:get_child("x", "http://jabber.org/protocol/muc");
   482 	local password = stanza:get_child("x", "http://jabber.org/protocol/muc");
   483 	password = password and password:get_child("password", "http://jabber.org/protocol/muc");
   483 	password = password and password:get_child_text("password", "http://jabber.org/protocol/muc");
   484 	password = password and password[1] ~= "" and password[1];
   484 	if not password or password == "" then password = nil; end
   485 	if room:get_password() and room:get_password() ~= password then
   485 	if room:get_password() ~= password then
   486 		local from, to = stanza.attr.from, stanza.attr.to;
   486 		local from, to = stanza.attr.from, stanza.attr.to;
   487 		log("debug", "%s couldn't join due to invalid password: %s", from, to);
   487 		log("debug", "%s couldn't join due to invalid password: %s", from, to);
   488 		local reply = st.error_reply(stanza, "auth", "not-authorized"):up();
   488 		local reply = st.error_reply(stanza, "auth", "not-authorized"):up();
   489 		reply.tags[1].attr.code = "401";
   489 		reply.tags[1].attr.code = "401";
   490 		event.origin.send(reply:tag("x", {xmlns = "http://jabber.org/protocol/muc"}));
   490 		event.origin.send(reply:tag("x", {xmlns = "http://jabber.org/protocol/muc"}));