Add config setting to disable MUC direct invites.

This commit is contained in:
JC Brand 2016-06-10 16:13:52 +02:00
parent 6258cfa089
commit 854633089d
4 changed files with 35 additions and 13 deletions

View File

@ -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]

View File

@ -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
---------

View File

@ -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);
}
/* ------------------------------------------------------------ */

View File

@ -1,7 +1,9 @@
<!-- <div class="occupants"> -->
{[ if (allow_muc_invitations) { ]}
<form class="pure-form room-invite">
<input class="invited-contact" placeholder="{{label_invitation}}" type="text"/>
</form>
{[ } ]}
<p class="occupants-heading">{{label_occupants}}:</p>
<ul class="occupant-list"></ul>
<!-- </div> -->