Skip to content

Commit 5e840ac

Browse files
committed
doveauth: allow more than one invite token
1 parent 518d12f commit 5e840ac

File tree

2 files changed

+14
-7
lines changed

2 files changed

+14
-7
lines changed

chatmaild/src/chatmaild/doveauth.py

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,17 @@ def is_allowed_to_create(config: Config, user, cleartext_password) -> bool:
2828
f"blocked account creation because {NOCREATE_FILE!r} exists."
2929
)
3030
return False
31-
if cleartext_password.startswith(config.invite_token):
32-
password_length = len(cleartext_password) - len(config.invite_token)
33-
else:
34-
logging.warning(
35-
f"blocked account creation because password didn't contain invite token(s)."
36-
)
37-
return False
31+
password_length = len(cleartext_password)
32+
if config.invite_token:
33+
for inv_token in config.invite_token.split():
34+
if cleartext_password.startswith(inv_token):
35+
password_length = len(cleartext_password) - len(inv_token)
36+
break
37+
else:
38+
logging.warning(
39+
f"blocked account creation because password didn't contain invite token(s)."
40+
)
41+
return False
3842

3943
if password_length < config.password_min_length:
4044
logging.warning(

chatmaild/src/chatmaild/tests/test_doveauth.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,9 @@ def test_dont_overwrite_password_on_wrong_login(dictproxy):
7171
(False, False, "asdf", "z9873240187420913798"),
7272
(False, True, "", "dsaiujfw9fjiwf9w"),
7373
(False, False, "asdf", "z987324018742asdf0913798"),
74+
(False, True, "as df", "asj0wiefkj0ofkeefok"),
75+
(False, True, "as df", "dfj0wiefkj0ofkeefok"),
76+
(False, False, "as df", "j0wiefkj0ofas dfkeefok"),
7477
(True, False, "asdf", "asdfmosadkdkfwdofkw"),
7578
(True, False, "asdf", "z9873240187420913798"),
7679
(True, False, "", "dsaiujfw9fjiwf9w"),

0 commit comments

Comments
 (0)