refactoring register and login user moved to user status folder
This commit is contained in:
parent
c537525a7e
commit
0cd5278272
105
verse/start.py
105
verse/start.py
@ -8,29 +8,22 @@ from datetime import timedelta
|
||||
from flask import (
|
||||
render_template,
|
||||
redirect,
|
||||
request,
|
||||
flash,
|
||||
url_for,
|
||||
session,
|
||||
abort,
|
||||
send_from_directory,
|
||||
)
|
||||
from sqlalchemy.exc import (
|
||||
IntegrityError,
|
||||
DataError,
|
||||
DatabaseError,
|
||||
InterfaceError,
|
||||
InvalidRequestError,
|
||||
)
|
||||
from flask_login import (
|
||||
login_user,
|
||||
logout_user,
|
||||
login_required,
|
||||
current_user,
|
||||
)
|
||||
|
||||
from werkzeug.routing import BuildError
|
||||
from flask_bcrypt import generate_password_hash, check_password_hash
|
||||
from flask_bcrypt import generate_password_hash
|
||||
from flask_wtf.csrf import CSRFError
|
||||
|
||||
from app import create_app, db, login_manager
|
||||
@ -38,7 +31,6 @@ from usermodel import User
|
||||
from distribusimodel import Distribusis
|
||||
|
||||
# Forms!
|
||||
from forms.loginform import LoginForm
|
||||
from forms.registerform import RegisterForm
|
||||
from forms.uploadform import UploadForm
|
||||
from forms.distribusiform import DistribusiForm
|
||||
@ -46,6 +38,8 @@ from forms.themeform import ThemeForm
|
||||
from forms.editorform import EditorForm
|
||||
|
||||
from statuspengguna.helper import AreFilesUploaded
|
||||
from statuspengguna.loginuser import LoginUser
|
||||
from statuspengguna.registeruser import RegisterUser
|
||||
|
||||
# Tada!
|
||||
from distribusi.cli import build_argparser
|
||||
@ -72,81 +66,6 @@ def index():
|
||||
return render_template("index.html", distribusies=distribusies)
|
||||
|
||||
|
||||
@APP.route("/login", methods=["GET", "POST"])
|
||||
def login():
|
||||
loginform = LoginForm()
|
||||
if loginform.validate_on_submit():
|
||||
try:
|
||||
user = User.query.filter_by(email=loginform.email.data).first()
|
||||
if user is None:
|
||||
loginform.password.errors.append("Invalid email or password!")
|
||||
return render_template("login.html", loginform=loginform)
|
||||
if check_password_hash(user.password, loginform.password.data):
|
||||
login_user(user)
|
||||
flash("Logged in successfully.", "success")
|
||||
next = request.args.get("next")
|
||||
if next is not None and not is_safe_url(next): # noqa: F821
|
||||
return abort(400)
|
||||
return redirect(next or url_for("index"))
|
||||
else:
|
||||
flash("Invalid email or password!", "danger")
|
||||
loginform.password.errors.append("Invalid email or password!")
|
||||
return render_template("login.html", loginform=loginform)
|
||||
except Exception as e:
|
||||
flash(e, "danger")
|
||||
return render_template("login.html", loginform=loginform)
|
||||
|
||||
|
||||
@APP.route("/register", methods=["GET", "POST"])
|
||||
def register():
|
||||
registerform = RegisterForm()
|
||||
if registerform.validate_on_submit():
|
||||
try:
|
||||
email = registerform.email.data
|
||||
password = registerform.confirmpassword.data
|
||||
|
||||
newuser = User(
|
||||
email=email,
|
||||
password=generate_password_hash(password),
|
||||
)
|
||||
|
||||
db.session.add(newuser)
|
||||
db.session.commit()
|
||||
flash("Account Succesfully created", "success")
|
||||
login_user(newuser)
|
||||
return redirect(url_for("index"))
|
||||
|
||||
except InvalidRequestError:
|
||||
db.session.rollback()
|
||||
registerform.email.errors.append("Something went wrong!")
|
||||
flash("Something went wrong!", "danger")
|
||||
except IntegrityError:
|
||||
db.session.rollback()
|
||||
registerform.email.errors.append("User already exists!")
|
||||
flash("User already exists!", "warning")
|
||||
except DataError:
|
||||
db.session.rollback()
|
||||
registerform.email.errors.append("Invalid Entry")
|
||||
flash("Invalid Entry", "warning")
|
||||
except InterfaceError:
|
||||
db.session.rollback()
|
||||
registerform.email.errors.append(
|
||||
"Error connecting to the database"
|
||||
)
|
||||
flash("Error connecting to the database", "danger")
|
||||
except DatabaseError:
|
||||
db.session.rollback()
|
||||
registerform.email.errors.append(
|
||||
"Error connecting to the database"
|
||||
)
|
||||
flash("Error connecting to the database", "danger")
|
||||
except BuildError:
|
||||
db.session.rollback()
|
||||
registerform.email.errors.append("Unknown error occured!")
|
||||
flash("An error occured !", "danger")
|
||||
return render_template("register.html", registerform=registerform)
|
||||
|
||||
|
||||
@APP.route("/distribusi", methods=["GET", "POST"])
|
||||
@login_required
|
||||
def distribusi():
|
||||
@ -213,7 +132,9 @@ def upload():
|
||||
flash("Something went wrong!", "danger")
|
||||
except IntegrityError:
|
||||
db.session.rollback()
|
||||
uploadform.sitename.errors.append("distribusi name already exists!")
|
||||
uploadform.sitename.errors.append(
|
||||
"distribusi name already exists!"
|
||||
)
|
||||
flash("distribusi name already exists!", "warning")
|
||||
|
||||
zipfilename = "{}.zip".format(newdistribusi.distribusiname)
|
||||
@ -223,7 +144,7 @@ def upload():
|
||||
newuserfolder = os.path.join("stash", newdistribusi.distribusiname)
|
||||
if not os.path.exists(newuserfolder):
|
||||
os.mkdir(newuserfolder)
|
||||
|
||||
|
||||
copyzipfile = os.path.join(APP.config["UPLOAD_FOLDER"], zipfilename)
|
||||
shutil.copy(copyzipfile, newuserfolder)
|
||||
os.remove(os.path.join(APP.config["UPLOAD_FOLDER"], zipfilename))
|
||||
@ -304,6 +225,18 @@ def logout():
|
||||
return redirect(url_for("index"))
|
||||
|
||||
|
||||
@APP.route("/login", methods=["GET", "POST"])
|
||||
def login():
|
||||
result = LoginUser()
|
||||
return result
|
||||
|
||||
|
||||
@APP.route("/register", methods=["GET", "POST"])
|
||||
def register():
|
||||
result = RegisterUser()
|
||||
return result
|
||||
|
||||
|
||||
@APP.errorhandler(CSRFError)
|
||||
def handle_csrf_error(e):
|
||||
return render_template("csrf_error.html", reason=e.description), 400
|
||||
|
@ -3,6 +3,7 @@ from flask_login import current_user
|
||||
from usermodel import User
|
||||
from distribusimodel import Distribusis
|
||||
|
||||
|
||||
def AreFilesUploaded():
|
||||
user = User.query.filter_by(email=current_user.email).first()
|
||||
distribusi = Distribusis.query.filter_by(userid=user.id).first()
|
||||
|
@ -1,7 +1,15 @@
|
||||
import os
|
||||
from flask_login import current_user
|
||||
from flask import (
|
||||
render_template,
|
||||
redirect,
|
||||
request,
|
||||
flash,
|
||||
url_for,
|
||||
abort,
|
||||
)
|
||||
from usermodel import User
|
||||
from forms.loginform import LoginForm
|
||||
from flask_login import login_user
|
||||
from flask_bcrypt import check_password_hash
|
||||
|
||||
|
||||
def LoginUser():
|
||||
@ -15,10 +23,14 @@ def LoginUser():
|
||||
if check_password_hash(user.password, loginform.password.data):
|
||||
login_user(user)
|
||||
flash("Logged in successfully.", "success")
|
||||
next = request.args.get("next")
|
||||
if next is not None and not is_safe_url(next): # noqa: F821
|
||||
return abort(400)
|
||||
return redirect(next or url_for("index"))
|
||||
else:
|
||||
flash("Invalid email or password!", "danger")
|
||||
loginform.password.errors.append("Invalid email or password!")
|
||||
return loginform
|
||||
return render_template("login.html", loginform=loginform)
|
||||
except Exception as e:
|
||||
flash(e, "danger")
|
||||
return loginform
|
||||
return render_template("login.html", loginform=loginform)
|
||||
|
68
verse/statuspengguna/registeruser.py
Normal file
68
verse/statuspengguna/registeruser.py
Normal file
@ -0,0 +1,68 @@
|
||||
from flask import (
|
||||
render_template,
|
||||
redirect,
|
||||
flash,
|
||||
url_for,
|
||||
)
|
||||
from sqlalchemy.exc import (
|
||||
IntegrityError,
|
||||
DataError,
|
||||
DatabaseError,
|
||||
InterfaceError,
|
||||
InvalidRequestError,
|
||||
)
|
||||
from werkzeug.routing import BuildError
|
||||
from usermodel import User
|
||||
from forms.registerform import RegisterForm
|
||||
from flask_login import login_user
|
||||
from flask_bcrypt import generate_password_hash
|
||||
from app import db
|
||||
|
||||
|
||||
def RegisterUser():
|
||||
registerform = RegisterForm()
|
||||
if registerform.validate_on_submit():
|
||||
try:
|
||||
email = registerform.email.data
|
||||
password = registerform.confirmpassword.data
|
||||
|
||||
newuser = User(
|
||||
email=email,
|
||||
password=generate_password_hash(password),
|
||||
)
|
||||
|
||||
db.session.add(newuser)
|
||||
db.session.commit()
|
||||
flash("Account Succesfully created", "success")
|
||||
login_user(newuser)
|
||||
return redirect(url_for("index"))
|
||||
|
||||
except InvalidRequestError:
|
||||
db.session.rollback()
|
||||
registerform.email.errors.append("Something went wrong!")
|
||||
flash("Something went wrong!", "danger")
|
||||
except IntegrityError:
|
||||
db.session.rollback()
|
||||
registerform.email.errors.append("User already exists!")
|
||||
flash("User already exists!", "warning")
|
||||
except DataError:
|
||||
db.session.rollback()
|
||||
registerform.email.errors.append("Invalid Entry")
|
||||
flash("Invalid Entry", "warning")
|
||||
except InterfaceError:
|
||||
db.session.rollback()
|
||||
registerform.email.errors.append(
|
||||
"Error connecting to the database"
|
||||
)
|
||||
flash("Error connecting to the database", "danger")
|
||||
except DatabaseError:
|
||||
db.session.rollback()
|
||||
registerform.email.errors.append(
|
||||
"Error connecting to the database"
|
||||
)
|
||||
flash("Error connecting to the database", "danger")
|
||||
except BuildError:
|
||||
db.session.rollback()
|
||||
registerform.email.errors.append("Unknown error occured!")
|
||||
flash("An error occured !", "danger")
|
||||
return render_template("register.html", registerform=registerform)
|
Loading…
Reference in New Issue
Block a user