Skip to main content

An account validity module for Synapse using email

Project description

Synapse email account validity

A Synapse plugin module to manage account validity using validation emails.

This module requires:

  • Synapse >= 1.34.0
  • sqlite3 >= 3.24.0 (if using SQLite with Synapse)

Installation

Thi plugin can be installed via PyPI:

pip install synapse-email-account-validity

Config

Add the following in your Synapse config under account_validity:

  - module: email_account_validity.EmailAccountValidity
    config:
      # The maximum amount of time an account can stay valid for without being renewed.
      period: 6w
      # How long before an account expires should Synapse send it a renewal email.
      renew_at: 1w

Also under the HTTP client listener, configure an additional_resource as per below:

    additional_resources:
      "/_synapse/client/email_account_validity":
        module: email_account_validity.EmailAccountValidityServlet
        config:
          # The maximum amount of time an account can stay valid for without being
          # renewed.
          period: 6w

The syntax for durations is the same as in the rest of Synapse's configuration file.

If they are not already there, copy the templates into Synapse's templates directory.

Routes

This plugin exposes three HTTP routes to manage account validity:

  • POST /_synapse/client/email_account_validity/send_mail, which any registered user can hit with an access token to request a renewal email to be sent to their email addresses.
  • GET /_synapse/client/email_account_validity/renew, which requires a token query parameter containing the latest token sent via email to the user, which renews the account associated with the token.
  • POST /_synapse/client/email_account_validity/admin, which any server admin can use to manage the account validity of any registered user. It takes a JSON body with the following keys:
    • user_id (string, required): The Matrix ID of the user to update.
    • expiration_ts (integer, optional): The new expiration timestamp for this user, in milliseconds. If no token is provided, a value corresponding to now + period is used.
    • enable_renewal_emails (boolean, optional): Whether to allow renewal emails to be sent to this user.

The two first routes need to be reachable by the end users for this feature to work as intended.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

synapse-email-account-validity-0.2.tar.gz (15.8 kB view details)

Uploaded Source

File details

Details for the file synapse-email-account-validity-0.2.tar.gz.

File metadata

  • Download URL: synapse-email-account-validity-0.2.tar.gz
  • Upload date:
  • Size: 15.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.2

File hashes

Hashes for synapse-email-account-validity-0.2.tar.gz
Algorithm Hash digest
SHA256 aa47be7f9033b1406ad44926c6c6cd86670335384cd14a75fcca37b69ccde23c
MD5 f7840ef90d691660d05e34684aa341df
BLAKE2b-256 480141f5bec501285dc404aacca3c7eb8857f98cc0144fc681ad36137f5e29ec

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page