matrixsynapse: Add token based registration verification
-
Allow setting registration verification to token based registration verification.
-
Configure the server with registration secret. Use the registration secret to register an admin account for FreedomBox's use. Store the access token provided during registration for future use.
-
Use Admin API and the access token to create a registration verification token. Show list of all registration tokens on app page.
Tests:
-
On a fresh installation, setup succeeds, public registration is disabled. Enabling public registration sets verification to be disabled by default. Registration tokens are not shown in status.
-
Without the patch, install the app and enable public registration. Apply the patches. After update registration verification will show as disabled.
-
Setting verification method to registration token works. freedombox-registration-secret.yaml file is created. This file has 0o600 permissions and is owned by matrix-synapse:nogroup. freedombox-admin-access-token.txt file is created. This file has 0o600 permissions and is owned by root:root. List of registration tokens are shown in status section. Registration with Element app works with the token listed.
-
Disabling registration verification works. Registration tokens are not shown in status section. Registration with Element app works without verification.
-
Disable app. Try to update the verification configuration to use tokens. An error should be thrown that configuration can't be updated when app is disabled.
Signed-off-by: Sunil Mohan Adapa sunil@medhas.org