Merge branch 'release/3.2.0' into prosody_room_list
This commit is contained in:
commit
446ebc0de9
@ -2,7 +2,9 @@
|
||||
|
||||
## v3.2.0
|
||||
|
||||
...
|
||||
### Features
|
||||
|
||||
* Builtin Prosody: new settings to enable local C2S. For example, can be used with Matterbridge (thanks https://github.com/tytan652)
|
||||
|
||||
## v3.1.0
|
||||
|
||||
|
@ -36,3 +36,4 @@ This roadmap is given as an indication. It will be updated as we go along accord
|
||||
[ ] | Builtin Prosody | Add a settings to enable the server to be accessed with XMPP clients.
|
||||
[ ] | ConverseJS | For anonymous user, automatically log in with a random nickname (and allow to change afterward)
|
||||
[ ] | Common | There should be a settings to add terms & conditions in the Peertube's about page (for example if the webchat is hosted anywhere else).
|
||||
[ ] | Builtin Prosody | Add on option to limit webchat to registered users.
|
||||
|
@ -114,7 +114,14 @@ function register ({ registerHook, registerSettingsScript, peertubeHelpers }: Re
|
||||
case 'prosody-peertube-uri':
|
||||
case 'chat-type-help-builtin-prosody':
|
||||
case 'prosody-list-rooms':
|
||||
case 'prosody-advanced':
|
||||
case 'prosody-c2s':
|
||||
return options.formValues['chat-type'] !== ('builtin-prosody' as ChatType)
|
||||
case 'prosody-c2s-port':
|
||||
return !(
|
||||
options.formValues['chat-type'] === ('builtin-prosody' as ChatType) &&
|
||||
options.formValues['prosody-c2s'] === true
|
||||
)
|
||||
case 'chat-server':
|
||||
case 'chat-room':
|
||||
case 'chat-bosh-uri':
|
||||
|
@ -61,6 +61,21 @@ This is the port that the Prosody server will use. By default it is set to 52800
|
||||
These settings are common with other chat modes.
|
||||
Here is the documentation: [common settings](./common.md).
|
||||
|
||||
### Prosody advanced settings
|
||||
|
||||
#### Enable client to server connections
|
||||
|
||||
This setting enable XMPP clients to connect to the builtin Prosody server.
|
||||
For now, this option **only allows connections from localhost clients**.
|
||||
|
||||
As example, this option can allow an instance of Matterbridge (once it could use anonymous login) *on the same machine* to bridge your chat with another services like a Matrix room.
|
||||
|
||||
##### Prosody client to server port
|
||||
|
||||
The port that will be used by the c2s module of the builtin Prosody server.
|
||||
XMPP clients shall use this port to connect.
|
||||
Change it if this port is already in use on your server.
|
||||
|
||||
## Moderation
|
||||
|
||||
You can list all existing chatrooms: in the plugin settings screen, there is a button «List rooms».
|
||||
|
@ -77,6 +77,7 @@ async function getProsodyConfig (options: RegisterServerOptions): Promise<Prosod
|
||||
if (!/^\d+$/.test(port)) {
|
||||
throw new Error('Invalid port')
|
||||
}
|
||||
const enableC2s = (await options.settingsManager.getSetting('prosody-c2s') as boolean) || false
|
||||
const prosodyDomain = await getProsodyDomain(options)
|
||||
const paths = await getProsodyFilePaths(options)
|
||||
|
||||
@ -99,6 +100,14 @@ async function getProsodyConfig (options: RegisterServerOptions): Promise<Prosod
|
||||
config.usePeertubeBosh(prosodyDomain, port)
|
||||
config.useMucHttpDefault(roomApiUrl)
|
||||
|
||||
if (enableC2s) {
|
||||
const c2sPort = (await options.settingsManager.getSetting('prosody-c2s-port') as string) || '52822'
|
||||
if (!/^\d+$/.test(c2sPort)) {
|
||||
throw new Error('Invalid c2s port')
|
||||
}
|
||||
config.useC2S(c2sPort)
|
||||
}
|
||||
|
||||
// TODO: add a settings so that admin can choose? (on/off and duration)
|
||||
config.useMam('1w') // Remove archived messages after 1 week
|
||||
// TODO: add a settings to choose?
|
||||
|
@ -203,6 +203,10 @@ class ProsodyConfigContent {
|
||||
}
|
||||
}
|
||||
|
||||
useC2S (c2sPort: string): void {
|
||||
this.global.set('c2s_ports', [c2sPort])
|
||||
}
|
||||
|
||||
useMucHttpDefault (url: string): void {
|
||||
this.muc.add('modules_enabled', 'muc_http_defaults')
|
||||
this.muc.add('muc_create_api_url', url)
|
||||
|
@ -276,6 +276,38 @@ Example: height:400px;`,
|
||||
private: false
|
||||
})
|
||||
|
||||
// ********** Built-in Prosody advanced settings
|
||||
registerSetting({
|
||||
name: 'prosody-advanced',
|
||||
type: 'html',
|
||||
private: true,
|
||||
descriptionHTML: '<h3>Prosody advanced settings</h3>'
|
||||
})
|
||||
|
||||
registerSetting({
|
||||
name: 'prosody-c2s',
|
||||
label: 'Enable client to server connections',
|
||||
type: 'input-checkbox',
|
||||
default: false,
|
||||
private: true,
|
||||
descriptionHTML:
|
||||
`Enable XMPP clients to connect to the builtin Prosody server.<br>
|
||||
This option alone only allows connections from localhost clients.`
|
||||
})
|
||||
|
||||
registerSetting({
|
||||
name: 'prosody-c2s-port',
|
||||
label: 'Prosody client to server port',
|
||||
type: 'input',
|
||||
default: '52822',
|
||||
private: true,
|
||||
descriptionHTML:
|
||||
`The port that will be used by the c2s module of the builtin Prosody server.<br>
|
||||
XMPP clients shall use this port to connect.<br>
|
||||
Change it if this port is already in use on your server.<br>
|
||||
Keep it close this port on your firewall for now, it will not be accessed from the outer world.`
|
||||
})
|
||||
|
||||
// ********** settings changes management
|
||||
settingsManager.onSettingsChange(async (settings: any) => {
|
||||
if ('chat-type' in settings) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user