diff options
author | Andrew Morgan <1342360+anoadragon453@users.noreply.github.com> | 2019-01-29 20:08:18 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-01-29 20:08:18 +0000 |
commit | 03b086647f3ccdcf1fdeb54ac19677e89a63e1d1 (patch) | |
tree | 940faaa9003333801c853cdce055fb14b7a20d98 | |
parent | Relax requirement for a content-type on .well-known (#4511) (diff) | |
parent | Add changelog (diff) | |
download | synapse-03b086647f3ccdcf1fdeb54ac19677e89a63e1d1.tar.xz |
Merge pull request #4512 from matrix-org/anoa/consent_dir
Check consent dir path on startup
-rw-r--r-- | changelog.d/4512.bugfix | 1 | ||||
-rw-r--r-- | synapse/config/consent_config.py | 14 | ||||
-rw-r--r-- | synapse/rest/consent/consent_resource.py | 11 |
3 files changed, 15 insertions, 11 deletions
diff --git a/changelog.d/4512.bugfix b/changelog.d/4512.bugfix new file mode 100644 index 0000000000..7a1345c4ac --- /dev/null +++ b/changelog.d/4512.bugfix @@ -0,0 +1 @@ +Fix a bug where setting a relative consent directory path would cause a crash. \ No newline at end of file diff --git a/synapse/config/consent_config.py b/synapse/config/consent_config.py index f193a090ae..9f2e85342f 100644 --- a/synapse/config/consent_config.py +++ b/synapse/config/consent_config.py @@ -13,6 +13,10 @@ # See the License for the specific language governing permissions and # limitations under the License. +from os import path + +from synapse.config import ConfigError + from ._base import Config DEFAULT_CONFIG = """\ @@ -85,7 +89,15 @@ class ConsentConfig(Config): if consent_config is None: return self.user_consent_version = str(consent_config["version"]) - self.user_consent_template_dir = consent_config["template_dir"] + self.user_consent_template_dir = self.abspath( + consent_config["template_dir"] + ) + if not path.isdir(self.user_consent_template_dir): + raise ConfigError( + "Could not find template directory '%s'" % ( + self.user_consent_template_dir, + ), + ) self.user_consent_server_notice_content = consent_config.get( "server_notice_content", ) diff --git a/synapse/rest/consent/consent_resource.py b/synapse/rest/consent/consent_resource.py index 80611cfe84..008d4edae5 100644 --- a/synapse/rest/consent/consent_resource.py +++ b/synapse/rest/consent/consent_resource.py @@ -101,16 +101,7 @@ class ConsentResource(Resource): "missing in config file.", ) - # daemonize changes the cwd to /, so make the path absolute now. - consent_template_directory = path.abspath( - hs.config.user_consent_template_dir, - ) - if not path.isdir(consent_template_directory): - raise ConfigError( - "Could not find template directory '%s'" % ( - consent_template_directory, - ), - ) + consent_template_directory = hs.config.user_consent_template_dir loader = jinja2.FileSystemLoader(consent_template_directory) self._jinja_env = jinja2.Environment( |