From 854633089d2a2e204a7168272e21a75612271c75 Mon Sep 17 00:00:00 2001 From: JC Brand Date: Fri, 10 Jun 2016 16:13:52 +0200 Subject: [PATCH] Add config setting to disable MUC direct invites. --- docs/CHANGES.md | 2 ++ docs/source/configuration.rst | 9 ++++++++ src/converse-muc.js | 35 ++++++++++++++++++----------- src/templates/chatroom_sidebar.html | 2 ++ 4 files changed, 35 insertions(+), 13 deletions(-) diff --git a/docs/CHANGES.md b/docs/CHANGES.md index 1b1e15385..dc6264bdf 100755 --- a/docs/CHANGES.md +++ b/docs/CHANGES.md @@ -2,6 +2,7 @@ ## 1.0.3 (Unreleased) +- Update the plugin architecture to allow plugins to have optional dependencies [jcbrand] - Bugfix. Login form doesn't render after logging out, when `auto_reconnect = false` [jcbrand] - Also indicate new day for the first day's messages. [jcbrand] - Chat bot messages don't appear when they have the same ids as their commands. [jcbrand] @@ -11,6 +12,7 @@ - Don't use sound and desktop notifications for OTR messages (when setting up the session) [jcbrand] - New config option [default_state](https://conversejs.org/docs/html/configuration.html#default_state) [jcbrand] - New API method `converse.rooms.close()` +- New configuration setting [allow_muc_invites](https://conversejs.org/docs/html/configuration.html#allow-muc-invites) [jcbrand] - #553 Add processing hints to OTR messages [jcbrand] - #650 Don't ignore incoming messages with same JID as current user (might be MAM archived) [jcbrand] diff --git a/docs/source/configuration.rst b/docs/source/configuration.rst index d0e61a357..8cc158df9 100644 --- a/docs/source/configuration.rst +++ b/docs/source/configuration.rst @@ -141,6 +141,15 @@ allow_muc Allow multi-user chat (muc) in chatrooms. Setting this to ``false`` will remove the ``Chatrooms`` tab from the control box. +allow_muc_invitations +--------------------- + +* Default: ``true`` + +Allows users to be invited to join MUC chat rooms. An "Invite" widget will +appear in the sidebar of the chat room where you can type in the JID of a user +to invite into the chat room. + allow_otr --------- diff --git a/src/converse-muc.js b/src/converse-muc.js index f565fb6a0..ce42eb341 100755 --- a/src/converse-muc.js +++ b/src/converse-muc.js @@ -74,9 +74,11 @@ Features: { addClientFeatures: function () { this._super.addClientFeatures.apply(this, arguments); - converse.connection.disco.addFeature('jabber:x:conference'); // Invites - if (this.allow_muc) { - this.connection.disco.addFeature(Strophe.NS.MUC); + if (converse.allow_muc_invitations) { + converse.connection.disco.addFeature('jabber:x:conference'); // Invites + } + if (converse.allow_muc) { + converse.connection.disco.addFeature(Strophe.NS.MUC); } } }, @@ -155,6 +157,7 @@ var converse = this.converse; // Configuration values for this plugin this.updateSettings({ + allow_muc_invitations: true, allow_muc: true, auto_join_on_invite: false, // Auto-join chatroom on invite auto_join_rooms: [], // List of maps {'jid': 'room@example.org', 'nick': 'WizardKing69' }, @@ -966,11 +969,15 @@ render: function () { this.$el.html( converse.templates.chatroom_sidebar({ + 'allow_muc_invitations': converse.allow_muc_invitations, 'label_invitation': __('Invite'), 'label_occupants': __('Occupants') }) ); - return this.initInviteWidget(); + if (converse.allow_muc_invitations) { + return this.initInviteWidget(); + } + return this; }, onOccupantAdded: function (item) { @@ -1362,15 +1369,17 @@ }; converse.on('chatBoxesFetched', autoJoinRooms); - var onConnected = function () { - converse.connection.addHandler( - function (message) { - converse.onDirectMUCInvitation(message); - return true; - }, 'jabber:x:conference', 'message'); - }; - converse.on('connected', onConnected); - converse.on('reconnected', onConnected); + if (converse.allow_muc_invitations) { + var onConnected = function () { + converse.connection.addHandler( + function (message) { + converse.onDirectMUCInvitation(message); + return true; + }, 'jabber:x:conference', 'message'); + }; + converse.on('connected', onConnected); + converse.on('reconnected', onConnected); + } /* ------------------------------------------------------------ */ diff --git a/src/templates/chatroom_sidebar.html b/src/templates/chatroom_sidebar.html index 3b8e5be28..656c6db9a 100644 --- a/src/templates/chatroom_sidebar.html +++ b/src/templates/chatroom_sidebar.html @@ -1,7 +1,9 @@ +{[ if (allow_muc_invitations) { ]}
+{[ } ]}

{{label_occupants}}: