1
0
mirror of https://github.com/Mailu/Mailu.git synced 2024-12-14 10:53:30 +02:00

Remove {scheme} from the DB if mailu has set it

This commit is contained in:
Florent Daigniere 2021-02-07 09:31:07 +01:00
parent 7137ba6ff1
commit 57a6abaf50

View File

@ -386,10 +386,14 @@ class User(Base, Email):
def check_password(self, password): def check_password(self, password):
context = self.get_password_context() context = self.get_password_context()
# {scheme} will most likely be migrated on first use
reference = self.password reference = self.password
# strip {scheme} if that's something mailu has added
# passlib will identify *crypt based hashes just fine
# on its own
if self.password.startswith("{"): if self.password.startswith("{"):
reference = re.match('({[^}]+})?(.*)', reference).group(2) scheme = self.password.split('}')[0][1:]
if scheme in scheme_dict:
reference = reference[len(scheme)+2:]
result, new_hash = context.verify_and_update(password, reference) result, new_hash = context.verify_and_update(password, reference)
if new_hash: if new_hash: