Skip to content

Commit

Permalink
Add canonincal_email_rules to galaxy + TS schemas
Browse files Browse the repository at this point in the history
Also, update description of email_ban_file config option.
  • Loading branch information
jdavcs committed Jan 23, 2025
1 parent ebbeb87 commit 442ea85
Show file tree
Hide file tree
Showing 5 changed files with 231 additions and 48 deletions.
35 changes: 24 additions & 11 deletions doc/source/admin/galaxy_options.rst
Original file line number Diff line number Diff line change
Expand Up @@ -1825,23 +1825,36 @@
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 the following set of rules. - Values are
not case-sensitive ([email protected] == [email protected]) -
Plus suffixes in the local-part of a Gmail account are ignored
([email protected] == [email protected]) -
Periods in the local_part of a Gmail account are ignored
([email protected] == [email protected])
The file should include one email address per line. Lines starting
with the "#" character are ignored.
Example value 'banned_emails.conf'
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
([email protected] == [email protected]) - ignore_dots
Periods in the local-part of an email address are ignored
([email protected] == [email protected]) - sub_addressing
Suffixes prefixed with <sub_addressing_delim> in the local-part of
an email address are ignored ([email protected] ==
[email protected] 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``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Expand Down
44 changes: 33 additions & 11 deletions lib/galaxy/config/sample/galaxy.yml.sample
Original file line number Diff line number Diff line change
Expand Up @@ -1220,21 +1220,43 @@ galaxy:
# 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 the following set of rules. - Values are not
# case-sensitive ([email protected] == [email protected]) - Plus
# suffixes in the local-part of a Gmail account are ignored
# ([email protected] == [email protected]) - Periods
# in the local_part of a Gmail account are ignored
# ([email protected] == [email protected])
# The file should include one email address per line. Lines starting
# with the "#" character are ignored.
# Example value 'banned_emails.conf'
# 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
# ([email protected] == [email protected]) - ignore_dots Periods
# in the local-part of an email address are ignored
# ([email protected] == [email protected]) - sub_addressing
# Suffixes prefixed with <sub_addressing_delim> in the local-part of
# an email address are ignored ([email protected] ==
# [email protected] 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.
Expand Down
44 changes: 33 additions & 11 deletions lib/galaxy/config/sample/tool_shed.yml.sample
Original file line number Diff line number Diff line change
Expand Up @@ -325,21 +325,43 @@ tool_shed:
# 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 the following set of rules. - Values are not
# case-sensitive ([email protected] == [email protected]) - Plus
# suffixes in the local-part of a Gmail account are ignored
# ([email protected] == [email protected]) - Periods
# in the local_part of a Gmail account are ignored
# ([email protected] == [email protected])
# The file should include one email address per line. Lines starting
# with the "#" character are ignored.
# Example value 'banned_emails.conf'
# 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
# ([email protected] == [email protected]) - ignore_dots Periods
# in the local-part of an email address are ignored
# ([email protected] == [email protected]) - sub_addressing
# Suffixes prefixed with <sub_addressing_delim> in the local-part of
# an email address are ignored ([email protected] ==
# [email protected] 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

Expand Down
77 changes: 70 additions & 7 deletions lib/galaxy/config/schemas/config_schema.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1310,16 +1310,79 @@ mapping:
desc: |
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.
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.
Email addresses are matched against a canonical address representation based on the following set of rules.
- Values are not case-sensitive ([email protected] == [email protected])
- Plus suffixes in the local-part of a Gmail account are ignored ([email protected] == [email protected])
- Periods in the local_part of a Gmail account are ignored ([email protected] == [email protected])
Example value "banned_emails.conf"
The file should include one email address per line. Lines starting with the "#" character are ignored.
canonical_email_rules:
type: map
desc: |
Specifies how email addresses are reduced to their canonical form by assigning rules to
email service domains and domain aliases.
Example value 'banned_emails.conf'
Available rules
- ignore_case
Values are not case-sensitive ([email protected] == [email protected])
- ignore_dots
Periods in the local-part of an email address are ignored ([email protected] == [email protected])
- sub_addressing
Suffixes prefixed with <sub_addressing_delim> in the local-part of an email address are ignored
([email protected] == [email protected] 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

mapping:
regex;(.+):
type: map
desc: |
Email service domain name. Note that "all" is a reserved keyword used to refer to all email service domain names.
Example value "gmail.com"
mapping:
aliases:
type: seq
desc: |
Domain aliases used by email service.
sequence:
- type: str
ignore_dots:
type: bool
default: false
desc: |
Periods in the local-part of an email address will be ignored.
ignore_case:
type: bool
default: false
desc: |
Email addresses are not case-sensitive.
sub_addressing:
type: bool
default: false
desc: |
In the email address's local-part, ignore the suffix prefixed with <sub_addressing_delim>.
sub_addressing_delim:
type: str
default: "+"
desc: |
The delimiter used to separate the address from the optional sub-addressing suffix.
registration_warning_message:
type: str
Expand Down
79 changes: 71 additions & 8 deletions lib/galaxy/config/schemas/tool_shed_config_schema.yml
Original file line number Diff line number Diff line change
Expand Up @@ -577,16 +577,79 @@ mapping:
desc: |
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 the following set of rules.
- Values are not case-sensitive ([email protected] == [email protected])
- Plus suffixes in the local-part of a Gmail account are ignored ([email protected] == [email protected])
- Periods in the local_part of a Gmail account are ignored ([email protected] == [email protected])
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'
Example value "banned_emails.conf"
canonical_email_rules:
type: map
desc: |
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 ([email protected] == [email protected])
- ignore_dots
Periods in the local-part of an email address are ignored ([email protected] == [email protected])
- sub_addressing
Suffixes prefixed with <sub_addressing_delim> in the local-part of an email address are ignored
([email protected] == [email protected] 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

mapping:
regex;(.+):
type: map
desc: |
Email service domain name. Note that "all" is a reserved keyword used to refer to all email service domain names.
Example value "gmail.com"
mapping:
aliases:
type: seq
desc: |
Domain aliases used by email service.
sequence:
- type: str
ignore_dots:
type: bool
default: false
desc: |
Periods in the local-part of an email address will be ignored.
ignore_case:
type: bool
default: false
desc: |
Email addresses are not case-sensitive.
sub_addressing:
type: bool
default: false
desc: |
In the email address's local-part, ignore the suffix prefixed with <sub_addressing_delim>.
sub_addressing_delim:
type: str
default: "+"
desc: |
The delimiter used to separate the address from the optional sub-addressing suffix.
brand:
type: str
Expand Down

0 comments on commit 442ea85

Please sign in to comment.