Unverified Commit 8f9dfaab authored by Marius van den Beek's avatar Marius van den Beek Committed by GitHub
Browse files

Merge pull request #19413 from jdavcs/dev_permaban

Prevent users from reusing a banned email after account is purged
parents ef40dbc0 0d37fde7
Loading
Loading
Loading
Loading
+38 −0
Original line number Diff line number Diff line
@@ -1817,6 +1817,44 @@
:Type: str


~~~~~~~~~~~~~~~~~~
``email_ban_file``
~~~~~~~~~~~~~~~~~~

:Description:
    E-mail ban file is used to specify email addresses that have been
    banned. If a user attempts to register a new account using an
    email address listed in this file, registration will be denied.
    This file does not affect user sign-in. Email addresses are
    matched against a canonical address representation based on rules
    defined in <canonical_email_rules>. The file should include one
    email address per line. Lines starting with the "#" character are
    ignored.
    Example value "banned_emails.conf"
    The value of this option will be resolved with respect to
    <config_dir>.
:Default: ``None``
:Type: str


~~~~~~~~~~~~~~~~~~~~~~~~~
``canonical_email_rules``
~~~~~~~~~~~~~~~~~~~~~~~~~

:Description:
    Specifies how email addresses are reduced to their canonical form
    by assigning rules to email service domains and domain aliases.
    Available rules - ignore_case   Values are not case-sensitive
    (RickDeckard@foo.cOM == rickdeckard@foo.com) - ignore_dots
    Periods in the local-part of an email address are ignored
    (rick.deckard@foo.com == rickdeckard@foo.com) - sub_addressing
    Suffixes prefixed with <sub_addressing_delim> in the local-part of
    an email address are ignored   (rickdeckard+anything@foo.com ==
    rickdeckard@foo.com if delimiter is the character '+')
:Default: ``{'all': {'ignore_case': False, 'ignore_dots': False, 'sub_addressing': False, 'sub_addressing_delim': '+'}, 'gmail.com': {'aliases': ['googlemail.com'], 'ignore_case': True, 'ignore_dots': True, 'sub_addressing': True}, 'proton.me': {'aliases': ['pm.me', 'protonmail.com'], 'ignore_case': True, 'sub_addressing': True}}``
:Type: map


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
``registration_warning_message``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+2 −0
Original line number Diff line number Diff line
@@ -225,6 +225,8 @@ class MockAppConfig(GalaxyDataTestConfig, CommonConfigurationMixin):
        self.custom_activation_email_message = "custom_activation_email_message"
        self.email_domain_allowlist_content = None
        self.email_domain_blocklist_content = None
        self.email_ban_file = None
        self.canonical_email_rules = None
        self.email_from = "email_from"
        self.enable_old_display_applications = True
        self.error_email_to = "admin@email.to"
+9 −1
Original line number Diff line number Diff line
@@ -26,6 +26,8 @@ try:
except ImportError:
    settings_to_sample = None

from pykwalify.errors import RuleError

try:
    from pykwalify.core import Core
except ImportError:
@@ -373,7 +375,13 @@ def _validate(args: Namespace, app_desc: App) -> None:
            schema_files=[fp.name],
        )
    os.remove(config_p.name)
    try:
        c.validate()
    except RuleError as error:
        if error.error_key == "default.not_scalar":
            # Default values are not supported by pykwalify (or kwalify) for map types. Yet, it is
            # beneficial to provide those defaults since they are loaded with the schema.
            pass


def _run_conversion(args: Namespace, app_desc: App) -> None:
+40 −0
Original line number Diff line number Diff line
@@ -1217,6 +1217,46 @@ galaxy:
  # <config_dir>.
  #email_domain_allowlist_file: null

  # E-mail ban file is used to specify email addresses that have been
  # banned. If a user attempts to register a new account using an email
  # address listed in this file, registration will be denied. This file
  # does not affect user sign-in. Email addresses are matched against a
  # canonical address representation based on rules defined in
  # <canonical_email_rules>. The file should include one email address
  # per line. Lines starting with the "#" character are ignored.
  # Example value "banned_emails.conf"
  # The value of this option will be resolved with respect to
  # <config_dir>.
  #email_ban_file: null

  # Specifies how email addresses are reduced to their canonical form by
  # assigning rules to email service domains and domain aliases.
  # Available rules - ignore_case   Values are not case-sensitive
  # (RickDeckard@foo.cOM == rickdeckard@foo.com) - ignore_dots   Periods
  # in the local-part of an email address are ignored
  # (rick.deckard@foo.com == rickdeckard@foo.com) - sub_addressing
  # Suffixes prefixed with <sub_addressing_delim> in the local-part of
  # an email address are ignored   (rickdeckard+anything@foo.com ==
  # rickdeckard@foo.com if delimiter is the character '+')
  #canonical_email_rules:
  #  all:
  #    ignore_case: false
  #    ignore_dots: false
  #    sub_addressing: false
  #    sub_addressing_delim: +
  #  gmail.com:
  #    aliases:
  #    - googlemail.com
  #    ignore_case: true
  #    ignore_dots: true
  #    sub_addressing: true
  #  proton.me:
  #    aliases:
  #    - pm.me
  #    - protonmail.com
  #    ignore_case: true
  #    sub_addressing: true

  # Registration warning message is used to discourage people from
  # registering multiple accounts.  Applies mostly for the main Galaxy
  # instance. If no message specified the warning box will not be shown.
+40 −0
Original line number Diff line number Diff line
@@ -322,6 +322,46 @@ tool_shed:
  # <email_domain_blocklist_file> will be ignored.
  #email_domain_allowlist_file: null

  # E-mail ban file is used to specify email addresses that have been
  # banned. If a user attempts to register a new account using an email
  # address listed in this file, registration will be denied. This file
  # does not affect user sign-in. Email addresses are matched against a
  # canonical address representation based on rules defined in
  # <canonical_email_rules>. The file should include one email address
  # per line. Lines starting with the "#" character are ignored.
  # Example value "banned_emails.conf"
  # The value of this option will be resolved with respect to
  # <config_dir>.
  #email_ban_file: null

  # Specifies how email addresses are reduced to their canonical form by
  # assigning rules to email service domains and domain aliases.
  # Available rules - ignore_case   Values are not case-sensitive
  # (RickDeckard@foo.cOM == rickdeckard@foo.com) - ignore_dots   Periods
  # in the local-part of an email address are ignored
  # (rick.deckard@foo.com == rickdeckard@foo.com) - sub_addressing
  # Suffixes prefixed with <sub_addressing_delim> in the local-part of
  # an email address are ignored   (rickdeckard+anything@foo.com ==
  # rickdeckard@foo.com if delimiter is the character '+')
  #canonical_email_rules:
  #  all:
  #    ignore_case: false
  #    ignore_dots: false
  #    sub_addressing: false
  #    sub_addressing_delim: +
  #  gmail.com:
  #    aliases:
  #    - googlemail.com
  #    ignore_case: true
  #    ignore_dots: true
  #    sub_addressing: true
  #  proton.me:
  #    aliases:
  #    - pm.me
  #    - protonmail.com
  #    ignore_case: true
  #    sub_addressing: true

  # Append "/{brand}" to the "Galaxy" text in the masthead.
  #brand: null

Loading