mirror of
https://github.com/zulip/zulip.git
synced 2025-11-15 19:31:58 +00:00
initial_password: Add explicit development environment assertion.
The construction of INITIAL_PASSWORD_SALT is such that it should only be set in development environments, but we should enforce this rule.
This commit is contained in:
@@ -10,6 +10,10 @@ def initial_password(email: str) -> Optional[str]:
|
|||||||
created by populate_db."""
|
created by populate_db."""
|
||||||
|
|
||||||
if settings.INITIAL_PASSWORD_SALT is not None:
|
if settings.INITIAL_PASSWORD_SALT is not None:
|
||||||
|
# We check settings.DEVELOPMENT, not settings.PRODUCTION,
|
||||||
|
# because some tests mock settings.PRODUCTION and then use
|
||||||
|
# self.login, which will call this function.
|
||||||
|
assert settings.DEVELOPMENT, "initial_password_salt should not be set in production."
|
||||||
encoded_key = (settings.INITIAL_PASSWORD_SALT + email).encode()
|
encoded_key = (settings.INITIAL_PASSWORD_SALT + email).encode()
|
||||||
digest = hashlib.sha256(encoded_key).digest()
|
digest = hashlib.sha256(encoded_key).digest()
|
||||||
return base64.b64encode(digest)[:16].decode()
|
return base64.b64encode(digest)[:16].decode()
|
||||||
|
|||||||
Reference in New Issue
Block a user