Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Add a warning when using deprecated template_dir settings #10768

Merged
merged 2 commits into from
Sep 6, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions changelog.d/10768.misc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Print a warning when using one of the deprecated `template_dir` settings.
14 changes: 14 additions & 0 deletions synapse/config/account_validity.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,20 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import logging

from synapse.config._base import Config, ConfigError

logger = logging.getLogger(__name__)

LEGACY_TEMPLATE_DIR_WARNING = """
This server's configuration file is using the deprecated 'template_dir' setting in the
'account_validity' section. Support for this setting has been deprecated and will be
removed in a future version of Synapse. Server admins should instead use the new
'custom_templates_directory' setting documented here:
https://matrix-org.github.io/synapse/latest/templates.html
---------------------------------------------------------------------------------------"""


class AccountValidityConfig(Config):
section = "account_validity"
Expand Down Expand Up @@ -69,6 +81,8 @@ def read_config(self, config, **kwargs):

# Load account validity templates.
account_validity_template_dir = account_validity_config.get("template_dir")
if account_validity_template_dir is not None:
logger.warning(LEGACY_TEMPLATE_DIR_WARNING)

account_renewed_template_filename = account_validity_config.get(
"account_renewed_html_path", "account_renewed.html"
Expand Down
14 changes: 14 additions & 0 deletions synapse/config/emailconfig.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@

# This file can't be called email.py because if it is, we cannot:
import email.utils
import logging
import os
from enum import Enum
from typing import Optional
Expand All @@ -24,6 +25,8 @@

from ._base import Config, ConfigError

logger = logging.getLogger(__name__)

MISSING_PASSWORD_RESET_CONFIG_ERROR = """\
Password reset emails are enabled on this homeserver due to a partial
'email' block. However, the following required keys are missing:
Expand All @@ -44,6 +47,14 @@
"email_validation": "[%(server_name)s] Validate your email",
}

LEGACY_TEMPLATE_DIR_WARNING = """
This server's configuration file is using the deprecated 'template_dir' setting in the
'email' section. Support for this setting has been deprecated and will be removed in a
future version of Synapse. Server admins should instead use the new
'custom_templates_directory' setting documented here:
https://matrix-org.github.io/synapse/latest/templates.html
---------------------------------------------------------------------------------------"""


@attr.s(slots=True, frozen=True)
class EmailSubjectConfig:
Expand Down Expand Up @@ -105,6 +116,9 @@ def read_config(self, config, **kwargs):

# A user-configurable template directory
template_dir = email_config.get("template_dir")
if template_dir is not None:
logger.warning(LEGACY_TEMPLATE_DIR_WARNING)

if isinstance(template_dir, str):
# We need an absolute path, because we change directory after starting (and
# we don't yet know what auxiliary templates like mail.css we will need).
Expand Down
13 changes: 13 additions & 0 deletions synapse/config/sso.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,23 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import logging
from typing import Any, Dict, Optional

import attr

from ._base import Config

logger = logging.getLogger(__name__)

LEGACY_TEMPLATE_DIR_WARNING = """
This server's configuration file is using the deprecated 'template_dir' setting in the
'sso' section. Support for this setting has been deprecated and will be removed in a
future version of Synapse. Server admins should instead use the new
'custom_templates_directory' setting documented here:
https://matrix-org.github.io/synapse/latest/templates.html
---------------------------------------------------------------------------------------"""
babolivier marked this conversation as resolved.
Show resolved Hide resolved


@attr.s(frozen=True)
class SsoAttributeRequirement:
Expand All @@ -43,6 +54,8 @@ def read_config(self, config, **kwargs):

# The sso-specific template_dir
self.sso_template_dir = sso_config.get("template_dir")
if self.sso_template_dir is not None:
logger.warning(LEGACY_TEMPLATE_DIR_WARNING)

# Read templates from disk
custom_template_directories = (
Expand Down