first commit
This commit is contained in:
97
lib/framework/init_route.py
Normal file
97
lib/framework/init_route.py
Normal file
@@ -0,0 +1,97 @@
|
||||
import os
|
||||
import sys
|
||||
from datetime import datetime, timedelta
|
||||
import json
|
||||
import traceback
|
||||
|
||||
# third-party
|
||||
from flask import (
|
||||
redirect,
|
||||
render_template,
|
||||
Response,
|
||||
request,
|
||||
jsonify,
|
||||
send_from_directory,
|
||||
)
|
||||
from flask_login import login_user, logout_user, current_user, login_required
|
||||
|
||||
# sjva 공용
|
||||
from framework import (
|
||||
app,
|
||||
db,
|
||||
version,
|
||||
USERS,
|
||||
login_manager,
|
||||
logger,
|
||||
path_data,
|
||||
check_api,
|
||||
)
|
||||
import system
|
||||
|
||||
|
||||
@app.route("/login", methods=["GET", "POST"])
|
||||
def login():
|
||||
if request.method == "POST":
|
||||
username = request.form["username"]
|
||||
password = request.form["password"]
|
||||
remember = request.form["remember"] == "True"
|
||||
if username not in USERS:
|
||||
return jsonify("no_id")
|
||||
elif not USERS[username].can_login(password):
|
||||
return jsonify("wrong_password")
|
||||
else:
|
||||
USERS[username].authenticated = True
|
||||
login_user(USERS[username], remember=remember)
|
||||
return jsonify("redirect")
|
||||
else:
|
||||
if (
|
||||
db.session.query(system.ModelSetting)
|
||||
.filter_by(key="use_login")
|
||||
.first()
|
||||
.value
|
||||
== "False"
|
||||
):
|
||||
username = (
|
||||
db.session.query(system.ModelSetting)
|
||||
.filter_by(key="id")
|
||||
.first()
|
||||
.value
|
||||
)
|
||||
logger.debug(f"username:: {username}")
|
||||
logger.debug(f"USERS:: {USERS}")
|
||||
USERS[username].authenticated = True
|
||||
login_user(USERS[username], remember=True)
|
||||
# current_user = USERS[username]
|
||||
return redirect(request.args.get("next"))
|
||||
|
||||
return render_template("login.html", next=request.args.get("next"))
|
||||
|
||||
|
||||
@app.errorhandler(401)
|
||||
def custom_401(error):
|
||||
|
||||
# return Response('<Why access is denied string goes here...>', 401, {'WWW-Authenticate':'Basic realm="Login Required"'})
|
||||
return "login_required"
|
||||
|
||||
|
||||
# important!!
|
||||
@login_manager.user_loader
|
||||
def user_loader(user_id):
|
||||
return USERS[user_id]
|
||||
|
||||
|
||||
# ============================================================================
|
||||
# API
|
||||
# ============================================================================
|
||||
@app.route("/")
|
||||
@app.route("/None")
|
||||
@app.route("/home")
|
||||
def home():
|
||||
logger.warning(request.host_url)
|
||||
return redirect("/system/home")
|
||||
|
||||
|
||||
@app.route("/version")
|
||||
def get_version():
|
||||
# return jsonify(version)
|
||||
return version
|
||||
Reference in New Issue
Block a user