def login(self): ''' Handle login process ''' form = LoginForm() if form.validate_on_submit(): # when form is valid and user exists and password matches... user = User.objects(login=form.login.data).first() if user is None or not check_password_hash(user.password, form.password.data): flash('Invalid login or password') else: # ... logged in and redirect to index (even not active) login_user(user, force=True) return redirect(url_for(".index")) # default is just show login form return self.render('form.html', form=form, title="Sign in")
def validate_email(self, field): if User.objects(email=field.data): raise validators.ValidationError("You already are registered.")
def validate_login(self, field): if User.objects(login=field.data): raise validators.ValidationError("This login is not available.")
def load_user(user_id): # .first() return None if no user as Flask-Login needs return User.objects(id=user_id).first()