diff --git a/conversejs/builtin.ts b/conversejs/builtin.ts index 214faed8..5aa9a606 100644 --- a/conversejs/builtin.ts +++ b/conversejs/builtin.ts @@ -78,6 +78,7 @@ interface InitConverseParams { boshServiceUrl: string websocketServiceUrl: string authenticationUrl: string + advancedControls: 'true' | 'false' } window.initConverse = async function initConverse ({ jid, @@ -85,8 +86,10 @@ window.initConverse = async function initConverse ({ room, boshServiceUrl, websocketServiceUrl, - authenticationUrl + authenticationUrl, + advancedControls }: InitConverseParams) { + const isInIframe = inIframe() const params: any = { assets_path: assetsPath, @@ -103,18 +106,12 @@ window.initConverse = async function initConverse ({ room ], singleton: true, - auto_focus: false, - hide_muc_participants: inIframe(), + auto_focus: isInIframe, + hide_muc_participants: isInIframe, keepalive: true, play_sounds: false, muc_mention_autocomplete_min_chars: 3, muc_mention_autocomplete_filter: 'contains', - modtools_disable_assign: true, - muc_disable_slash_commands: [ - 'admin', 'ban', 'clear', 'deop', 'destroy', 'kick', - 'member', 'modtools', 'mute', 'op', 'owner', 'register', - 'revoke', 'subject', 'topic', 'voice' - ], muc_instant_rooms: true, show_client_info: false, allow_adhoc_commands: false, @@ -143,5 +140,18 @@ window.initConverse = async function initConverse ({ } } + if (!advancedControls) { + // These params are for externals XMPP servers. + // NB: because we dont know if external servers have authentication mecanism, + // we disable all moderation functionnality. + // This is also done for backward compatibility with older installations. + params.muc_disable_slash_commands = [ + 'admin', 'ban', 'clear', 'deop', 'destroy', 'kick', + 'member', 'modtools', 'mute', 'op', 'owner', 'register', + 'revoke', 'subject', 'topic', 'voice' + ] + params.modtools_disable_assign = true + } + window.converse.initialize(params) } diff --git a/conversejs/index.html b/conversejs/index.html index 509b3e4b..7ac7a1c5 100644 --- a/conversejs/index.html +++ b/conversejs/index.html @@ -24,7 +24,8 @@ room: '{{ROOM}}', boshServiceUrl: '{{BOSH_SERVICE_URL}}', websocketServiceUrl: '{{WS_SERVICE_URL}}', - authenticationUrl: '{{AUTHENTICATION_URL}}' + authenticationUrl: '{{AUTHENTICATION_URL}}', + advancedControls: '{{ADVANCEDCONTROLS}}' }) diff --git a/server/lib/routers/webchat.ts b/server/lib/routers/webchat.ts index 95fcf99f..ccf24253 100644 --- a/server/lib/routers/webchat.ts +++ b/server/lib/routers/webchat.ts @@ -33,6 +33,7 @@ async function initWebchatRouter (options: RegisterServerOptions): Promise