Mercurial > prosody-hg
comparison plugins/muc/muc.lib.lua @ 3256:d96172f78ec2
MUC: Added a 'Make Room Members-Only?' field to the room config dialog.
| author | Waqas Hussain <waqas20@gmail.com> |
|---|---|
| date | Sun, 13 Jun 2010 20:52:37 +0500 |
| parents | 6bffb5c63131 |
| children | fae054e15e03 |
comparison
equal
deleted
inserted
replaced
| 3255:6bffb5c63131 | 3256:d96172f78ec2 |
|---|---|
| 489 :tag("value"):text(self:get_password() or ""):up() | 489 :tag("value"):text(self:get_password() or ""):up() |
| 490 :up() | 490 :up() |
| 491 :tag("field", {type='boolean', label='Make Room Moderated?', var='muc#roomconfig_moderatedroom'}) | 491 :tag("field", {type='boolean', label='Make Room Moderated?', var='muc#roomconfig_moderatedroom'}) |
| 492 :tag("value"):text(self:is_moderated() and "1" or "0"):up() | 492 :tag("value"):text(self:is_moderated() and "1" or "0"):up() |
| 493 :up() | 493 :up() |
| 494 :tag("field", {type='boolean', label='Make Room Members-Only?', var='muc#roomconfig_membersonly'}) | |
| 495 :tag("value"):text(self:is_members_only() and "1" or "0"):up() | |
| 496 :up() | |
| 494 ); | 497 ); |
| 495 end | 498 end |
| 496 | 499 |
| 497 local valid_whois = { | 500 local valid_whois = { |
| 498 moderators = true, | 501 moderators = true, |
| 527 if moderated == "0" or moderated == "false" then moderated = nil; elseif moderated == "1" or moderated == "true" then moderated = true; | 530 if moderated == "0" or moderated == "false" then moderated = nil; elseif moderated == "1" or moderated == "true" then moderated = true; |
| 528 else origin.send(st.error_reply(stanza, "cancel", "bad-request")); return; end | 531 else origin.send(st.error_reply(stanza, "cancel", "bad-request")); return; end |
| 529 dirty = dirty or (self:is_moderated() ~= moderated) | 532 dirty = dirty or (self:is_moderated() ~= moderated) |
| 530 module:log("debug", "moderated=%s", tostring(moderated)); | 533 module:log("debug", "moderated=%s", tostring(moderated)); |
| 531 | 534 |
| 535 local membersonly = fields['muc#roomconfig_membersonly']; | |
| 536 if membersonly == "0" or membersonly == "false" then membersonly = nil; elseif membersonly == "1" or membersonly == "true" then membersonly = true; | |
| 537 else origin.send(st.error_reply(stanza, "cancel", "bad-request")); return; end | |
| 538 dirty = dirty or (self:is_members_only() ~= membersonly) | |
| 539 module:log("debug", "membersonly=%s", tostring(membersonly)); | |
| 540 | |
| 532 local public = fields['muc#roomconfig_publicroom']; | 541 local public = fields['muc#roomconfig_publicroom']; |
| 533 if public == "0" or public == "false" then public = nil; elseif public == "1" or public == "true" then public = true; | 542 if public == "0" or public == "false" then public = nil; elseif public == "1" or public == "true" then public = true; |
| 534 else origin.send(st.error_reply(stanza, "cancel", "bad-request")); return; end | 543 else origin.send(st.error_reply(stanza, "cancel", "bad-request")); return; end |
| 535 dirty = dirty or (self._data.hidden ~= (not public and true or nil)) | 544 dirty = dirty or (self._data.hidden ~= (not public and true or nil)) |
| 536 self._data.hidden = not public and true or nil; | 545 self._data.hidden = not public and true or nil; |
| 547 local password = fields['muc#roomconfig_roomsecret']; | 556 local password = fields['muc#roomconfig_roomsecret']; |
| 548 if password then | 557 if password then |
| 549 self:set_password(password); | 558 self:set_password(password); |
| 550 end | 559 end |
| 551 self:set_moderated(moderated); | 560 self:set_moderated(moderated); |
| 561 self:set_members_only(membersonly); | |
| 552 | 562 |
| 553 if self.save then self:save(true); end | 563 if self.save then self:save(true); end |
| 554 origin.send(st.reply(stanza)); | 564 origin.send(st.reply(stanza)); |
| 555 | 565 |
| 556 if dirty or whois_changed then | 566 if dirty or whois_changed then |
