from flask import redirect, url_for, request, flash from flask_login import login_user, logout_user, login_required, current_user from app import app from app.forms.login import LoginForm from app.models.users import Member from app.utils.render import render # from app.routes.index import index @app.route('/login', methods=['GET', 'POST']) def login(): form = LoginForm() if form.validate_on_submit(): member = Member.query.filter_by(name=form.username.data).first() if member is None or not member.check_password(form.password.data): flash('Pseudo ou mot de passe invalide', 'error') return redirect(request.referrer) login_user(member, remember=form.remember_me.data) # TODO: petit mot personnalisé pour l'utilisateur ? flash('Connexion réussie', 'info') r = request.args.get('next') if r: return redirect(r) # TODO: faire en sorte qu'on soit redirigé vers la page actuelle si on se loggue dans la sidebar # TODO: mais pas rediriger vers login si on est déjà loggué return redirect(url_for('index')) return render('login.html', form=form) @app.route('/logout') @login_required def logout(): logout_user() flash('Déconnexion réussie', 'info') return redirect(url_for('index'))