def verify_password(self, password, migrate=False): """Verify if password matches the stored password hash.""" if self.password is None or password is None: return False # Invenio 1.x legacy needs externally store password salt to compute # hash. scheme_ctx = {} if \ self.password_scheme != invenio_aes_encrypted_email.name else \ {'user': self.password_salt} # Verify password if not password_context.verify( password, self.password, scheme=self.password_scheme, ** scheme_ctx): return False # Migrate hash if needed. if migrate and password_context.needs_update(self.password): self.password = password try: db.session.commit() except Exception: db.session.rollback() raise return True
def verify_password(self, password, migrate=False): """Verify if password matches the stored password hash.""" if self.password is None or password is None: return False # Invenio 1.x legacy needs externally store password salt to compute # hash. scheme_ctx = {} if \ self.password_scheme != invenio_aes_encrypted_email.name else \ {'user': self.password_salt} # Verify password if not password_context.verify(password, self.password, scheme=self.password_scheme, **scheme_ctx): return False # Migrate hash if needed. if migrate and password_context.needs_update(self.password): self.password = password try: db.session.commit() except Exception: db.session.rollback() raise return True