Skip to content
Snippets Groups Projects
Unverified Commit 8c9e723f authored by Brendan Abolivier's avatar Brendan Abolivier Committed by GitHub
Browse files

Add a warning when using deprecated template_dir settings (#10768)

The deprecation itself happened in #10596 which shipped with Synapse v1.41.0. However, it doesn't seem fair to suddenly drop support for these settings in ~4-6w without being more vocal about said deprecation.
parent ae3c1631
No related branches found
No related tags found
No related merge requests found
Print a warning when using one of the deprecated `template_dir` settings.
...@@ -11,8 +11,20 @@ ...@@ -11,8 +11,20 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
import logging
from synapse.config._base import Config, ConfigError 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): class AccountValidityConfig(Config):
section = "account_validity" section = "account_validity"
...@@ -69,6 +81,8 @@ class AccountValidityConfig(Config): ...@@ -69,6 +81,8 @@ class AccountValidityConfig(Config):
# Load account validity templates. # Load account validity templates.
account_validity_template_dir = account_validity_config.get("template_dir") 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_template_filename = account_validity_config.get(
"account_renewed_html_path", "account_renewed.html" "account_renewed_html_path", "account_renewed.html"
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
# This file can't be called email.py because if it is, we cannot: # This file can't be called email.py because if it is, we cannot:
import email.utils import email.utils
import logging
import os import os
from enum import Enum from enum import Enum
from typing import Optional from typing import Optional
...@@ -24,6 +25,8 @@ import attr ...@@ -24,6 +25,8 @@ import attr
from ._base import Config, ConfigError from ._base import Config, ConfigError
logger = logging.getLogger(__name__)
MISSING_PASSWORD_RESET_CONFIG_ERROR = """\ MISSING_PASSWORD_RESET_CONFIG_ERROR = """\
Password reset emails are enabled on this homeserver due to a partial Password reset emails are enabled on this homeserver due to a partial
'email' block. However, the following required keys are missing: 'email' block. However, the following required keys are missing:
...@@ -44,6 +47,14 @@ DEFAULT_SUBJECTS = { ...@@ -44,6 +47,14 @@ DEFAULT_SUBJECTS = {
"email_validation": "[%(server_name)s] Validate your email", "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) @attr.s(slots=True, frozen=True)
class EmailSubjectConfig: class EmailSubjectConfig:
...@@ -105,6 +116,9 @@ class EmailConfig(Config): ...@@ -105,6 +116,9 @@ class EmailConfig(Config):
# A user-configurable template directory # A user-configurable template directory
template_dir = email_config.get("template_dir") template_dir = email_config.get("template_dir")
if template_dir is not None:
logger.warning(LEGACY_TEMPLATE_DIR_WARNING)
if isinstance(template_dir, str): if isinstance(template_dir, str):
# We need an absolute path, because we change directory after starting (and # 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). # we don't yet know what auxiliary templates like mail.css we will need).
......
...@@ -11,12 +11,23 @@ ...@@ -11,12 +11,23 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
import logging
from typing import Any, Dict, Optional from typing import Any, Dict, Optional
import attr import attr
from ._base import Config 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
---------------------------------------------------------------------------------------"""
@attr.s(frozen=True) @attr.s(frozen=True)
class SsoAttributeRequirement: class SsoAttributeRequirement:
...@@ -43,6 +54,8 @@ class SSOConfig(Config): ...@@ -43,6 +54,8 @@ class SSOConfig(Config):
# The sso-specific template_dir # The sso-specific template_dir
self.sso_template_dir = sso_config.get("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 # Read templates from disk
custom_template_directories = ( custom_template_directories = (
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment