Merge branch 'release/3.2.0' into prosody_room_list
This commit is contained in:
commit
446ebc0de9
@ -2,7 +2,9 @@
|
|||||||
|
|
||||||
## v3.2.0
|
## 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
|
## 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.
|
[ ] | 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)
|
[ ] | 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).
|
[ ] | 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 'prosody-peertube-uri':
|
||||||
case 'chat-type-help-builtin-prosody':
|
case 'chat-type-help-builtin-prosody':
|
||||||
case 'prosody-list-rooms':
|
case 'prosody-list-rooms':
|
||||||
|
case 'prosody-advanced':
|
||||||
|
case 'prosody-c2s':
|
||||||
return options.formValues['chat-type'] !== ('builtin-prosody' as ChatType)
|
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-server':
|
||||||
case 'chat-room':
|
case 'chat-room':
|
||||||
case 'chat-bosh-uri':
|
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.
|
These settings are common with other chat modes.
|
||||||
Here is the documentation: [common settings](./common.md).
|
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
|
## Moderation
|
||||||
|
|
||||||
You can list all existing chatrooms: in the plugin settings screen, there is a button «List rooms».
|
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)) {
|
if (!/^\d+$/.test(port)) {
|
||||||
throw new Error('Invalid port')
|
throw new Error('Invalid port')
|
||||||
}
|
}
|
||||||
|
const enableC2s = (await options.settingsManager.getSetting('prosody-c2s') as boolean) || false
|
||||||
const prosodyDomain = await getProsodyDomain(options)
|
const prosodyDomain = await getProsodyDomain(options)
|
||||||
const paths = await getProsodyFilePaths(options)
|
const paths = await getProsodyFilePaths(options)
|
||||||
|
|
||||||
@ -99,6 +100,14 @@ async function getProsodyConfig (options: RegisterServerOptions): Promise<Prosod
|
|||||||
config.usePeertubeBosh(prosodyDomain, port)
|
config.usePeertubeBosh(prosodyDomain, port)
|
||||||
config.useMucHttpDefault(roomApiUrl)
|
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)
|
// TODO: add a settings so that admin can choose? (on/off and duration)
|
||||||
config.useMam('1w') // Remove archived messages after 1 week
|
config.useMam('1w') // Remove archived messages after 1 week
|
||||||
// TODO: add a settings to choose?
|
// 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 {
|
useMucHttpDefault (url: string): void {
|
||||||
this.muc.add('modules_enabled', 'muc_http_defaults')
|
this.muc.add('modules_enabled', 'muc_http_defaults')
|
||||||
this.muc.add('muc_create_api_url', url)
|
this.muc.add('muc_create_api_url', url)
|
||||||
|
@ -276,6 +276,38 @@ Example: height:400px;`,
|
|||||||
private: false
|
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
|
// ********** settings changes management
|
||||||
settingsManager.onSettingsChange(async (settings: any) => {
|
settingsManager.onSettingsChange(async (settings: any) => {
|
||||||
if ('chat-type' in settings) {
|
if ('chat-type' in settings) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user