Write simple login page
This commit is contained in:
parent
a42283e3eb
commit
ba02d66a71
|
@ -1,12 +1,11 @@
|
||||||
from flask import Blueprint,render_template
|
from flask import Blueprint,render_template,session,redirect,url_for
|
||||||
from werkzeug.security import generate_password_hash
|
from werkzeug.security import generate_password_hash
|
||||||
|
|
||||||
admin = Blueprint('admin',__name__)
|
admin = Blueprint('admin',__name__)
|
||||||
|
|
||||||
@admin.route("/admin")
|
@admin.route("/admin")
|
||||||
def admin_page():
|
def admin_page():
|
||||||
return render_template("admin.html")
|
if ( "username" in session):
|
||||||
|
return render_template("admin.html",username=session["username"])
|
||||||
@admin.route("/new-web-user",methods=["POST"])
|
|
||||||
def new_web_user():
|
return redirect(url_for("login/"))
|
||||||
return "Create a new web user"
|
|
||||||
|
|
18
apps/auth.py
18
apps/auth.py
|
@ -1,6 +1,8 @@
|
||||||
from flask import Blueprint,render_template,request,redirect,url_for
|
from flask import Blueprint,render_template,request,redirect,url_for,session
|
||||||
from werkzeug.security import check_password_hash
|
from werkzeug.security import check_password_hash
|
||||||
|
|
||||||
|
from database.models import WebUser
|
||||||
|
|
||||||
auth = Blueprint('auth',__name__)
|
auth = Blueprint('auth',__name__)
|
||||||
|
|
||||||
@auth.route("/")
|
@auth.route("/")
|
||||||
|
@ -13,9 +15,19 @@ def login():
|
||||||
username = request.form.get("username")
|
username = request.form.get("username")
|
||||||
password = request.form.get("password")
|
password = request.form.get("password")
|
||||||
|
|
||||||
# TODO: check hash password in database
|
if (not username) or (not password):
|
||||||
|
return "Enter username/password"
|
||||||
|
|
||||||
|
# TODO: Write simple frontened (if username is None or password is None)
|
||||||
|
if (WebUser.userExists(username)):
|
||||||
|
user = WebUser.get(WebUser.username == username)
|
||||||
|
|
||||||
return "Some operations"
|
if ( check_password_hash(user.password_hash,password)):
|
||||||
|
session["username"] = username
|
||||||
|
return redirect(url_for("admin.admin_page"))
|
||||||
|
else:
|
||||||
|
return "Password not valid"
|
||||||
|
return "User not exist"
|
||||||
|
|
||||||
@auth.route("/logout")
|
@auth.route("/logout")
|
||||||
def logout():
|
def logout():
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
from models import WebUser
|
|
@ -14,14 +14,16 @@ class WebUser(Model):
|
||||||
db_table = "webusers"
|
db_table = "webusers"
|
||||||
database = db
|
database = db
|
||||||
|
|
||||||
def userExists(self,username) -> bool:
|
@staticmethod
|
||||||
|
def userExists(username) -> bool:
|
||||||
"""Check if the username exists in a database."""
|
"""Check if the username exists in a database."""
|
||||||
query = WebUser.select().where(WebUser.username == username)
|
query = WebUser.select().where(WebUser.username == username)
|
||||||
|
|
||||||
if (not query) or (not query.exists()):
|
if (query):
|
||||||
return False
|
if (query.exists()):
|
||||||
|
return True
|
||||||
|
|
||||||
return True
|
return False
|
||||||
|
|
||||||
def build_models():
|
def build_models():
|
||||||
db.create_tables([WebUser])
|
db.create_tables([WebUser])
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
<!-- Login form -->
|
<form action="/login" method="post">
|
||||||
|
<p><input type="text" name="username" placeholder="Enter username"></p>
|
||||||
Login page
|
<p><input type="password" name="password" placeholder="Enter password"></p>
|
||||||
|
<p><button type="sumbit">Log In</button></p>
|
||||||
|
</form>
|
||||||
|
|
Loading…
Reference in New Issue