plugins/muc/muc.lib.lua
changeset 6226 7582deb85812
parent 6225 12537f1c1fec
child 6227 bb75c011b15e
--- a/plugins/muc/muc.lib.lua	Wed Apr 16 14:16:14 2014 -0400
+++ b/plugins/muc/muc.lib.lua	Fri Apr 18 12:19:04 2014 -0400
@@ -49,15 +49,10 @@
 module:hook("muc-get-default-role", function(event)
 	if event.affiliation_rank >= valid_affiliations.admin then
 		return "moderator";
-	elseif event.affiliation_rank >= valid_affiliations.member then
+	elseif event.affiliation_rank >= valid_affiliations.none then
 		return "participant";
 	end
 end);
-module:hook("muc-get-default-role", function(event)
-	if not event.affiliation then
-		return event.room:get_moderated() and "visitor" or "participant";
-	end
-end, -1);
 
 --- Occupant functions
 function room_mt:new_occupant(bare_real_jid, nick)
@@ -278,9 +273,6 @@
 	event.reply:tag("feature", {var = "http://jabber.org/protocol/muc"}):up();
 end);
 module:hook("muc-disco#info", function(event)
-	event.reply:tag("feature", {var = event.room:get_moderated() and "muc_moderated" or "muc_unmoderated"}):up();
-end);
-module:hook("muc-disco#info", function(event)
 	local count = iterators.count(event.room:each_occupant());
 	table.insert(event.form, { name = "muc#roominfo_occupants", label = "Number of occupants", value = tostring(count) });
 end);
@@ -311,23 +303,11 @@
 	return true;
 end
 
-function room_mt:set_moderated(moderated)
-	moderated = moderated and true or nil;
-	if self._data.moderated ~= moderated then
-		self._data.moderated = moderated;
-		if self.save then self:save(true); end
-	end
-end
-function room_mt:get_moderated()
-	return self._data.moderated;
-end
-
 -- Give the room creator owner affiliation
 module:hook("muc-room-pre-create", function(event)
 	event.room:set_affiliation(true, jid_bare(event.stanza.attr.from), "owner");
 end, -1);
 
-
 -- check if user is banned
 module:hook("muc-occupant-pre-join", function(event)
 	local room, stanza = event.room, event.stanza;
@@ -602,14 +582,6 @@
 	});
 	return module:fire_event("muc-config-form", { room = self, actor = actor, form = form }) or form;
 end
-module:hook("muc-config-form", function(event)
-	table.insert(event.form, {
-		name = 'muc#roomconfig_moderatedroom',
-		type = 'boolean',
-		label = 'Make Room Moderated?',
-		value = event.room:get_moderated()
-	});
-end);
 
 function room_mt:process_form(origin, stanza)
 	local form = stanza.tags[1]:get_child("x", "jabber:x:data");
@@ -651,9 +623,6 @@
 	end
 	return true;
 end
-module:hook("muc-config-submitted", function(event)
-	event.update_option("moderated", "muc#roomconfig_moderatedroom");
-end);
 
 -- Removes everyone from the room
 function room_mt:clear(x)
@@ -1119,6 +1088,10 @@
 room_mt.get_members_only = members_only.get;
 room_mt.set_members_only = members_only.set;
 
+local moderated = module:require "muc/moderated";
+room_mt.get_moderated = moderated.get;
+room_mt.set_moderated = moderated.set;
+
 local persistent = module:require "muc/persistent";
 room_mt.get_persistent = persistent.get;
 room_mt.set_persistent = persistent.set;