1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- from flask import render_template, request, make_response, jsonify, redirect, url_for, flash, session
- from flask.views import MethodView
- import bcrypt
- from app.auth import bp
- from app.extensions import db, write_log
- from app.models.users import tbl_users
- from .forms import LoginForm
- from flask_login import login_user, login_required, logout_user
- @bp.route('/login', methods=["GET", "POST"])
- def login():
- # admin==admin-123
- s_out = ""
- s_user_id = request.cookies.get("cv_db_user", "")
- form = LoginForm()
- if form.validate_on_submit():
- s_user_id, s_password, bl_remember = (form.txt_user_id.data, form.txt_password.data, form.chk_remember.data)
- o_user = db.session.query(tbl_users).filter(tbl_users.v_user_id==s_user_id).first()
- if not o_user:
- flash("invalid user ID")
- return redirect(url_for("auth.login"))
- else:
- if o_user.check_password(s_password):
- login_user(o_user, remember=bl_remember)
- write_log(f"{s_user_id} logged in")
- flash("logged in")
- resp = redirect(url_for("main.index"))
- if bl_remember:
- resp.set_cookie("cv_db_user", s_user_id, max_age=604800) # expires after 7 days
- else:
- resp.set_cookie("cv_db_user", "", max_age=0) # clear by setting it with max_age of 0
- # end of checking if remember me checkboxchecked
- session["user_id"] = s_user_id
- return resp
- else:
- flash("Invalid password")
- # end of validating password
- # end of checking if valid user ID entered
- # end of checking for form submission
- return render_template('auth/login.html', js=True, form=form, s_user_id=s_user_id)
- # end of login view function for route /auth/login
- @bp.route("/logout")
- @login_required
- def logout():
- logout_user()
- flash("logged out")
- return redirect(url_for("auth.login"))
- # end of logout view function for route /auth/logout
|