|
import flask
|
|
import src.functions.config
|
|
|
|
authBP = flask.Blueprint("auth", __name__)
|
|
|
|
|
|
@authBP.route("/api/v1/auth")
|
|
async def authFunction():
|
|
a = flask.request.args.get("a")
|
|
p = flask.request.args.get("p")
|
|
u = flask.request.args.get("u")
|
|
config = src.functions.config.readConfig()
|
|
|
|
rules = flask.request.args.get("rules")
|
|
if config.get("auth") == False:
|
|
return (
|
|
flask.jsonify(
|
|
{
|
|
"code": 200,
|
|
"content": {"ui_config": config.get("ui_config", {})},
|
|
"message": "Authentication completed successfully.",
|
|
"success": True,
|
|
}
|
|
),
|
|
200,
|
|
)
|
|
elif rules == "signup":
|
|
if config.get("signup") == True:
|
|
return (
|
|
flask.jsonify(
|
|
{
|
|
"code": 202,
|
|
"content": True,
|
|
"message": "Signup is available on this server.",
|
|
"success": True,
|
|
}
|
|
),
|
|
202,
|
|
)
|
|
else:
|
|
return (
|
|
flask.jsonify(
|
|
{
|
|
"code": 202,
|
|
"content": False,
|
|
"message": "Signup is not available on this server.",
|
|
"success": True,
|
|
}
|
|
),
|
|
202,
|
|
)
|
|
elif any(u == account["username"] for account in config["account_list"]) and any(
|
|
p == account["password"] for account in config["account_list"]
|
|
):
|
|
account = next(
|
|
(
|
|
i
|
|
for i in config["account_list"]
|
|
if i["username"] == u and i["password"] == p
|
|
),
|
|
None,
|
|
)
|
|
return (
|
|
flask.jsonify(
|
|
{
|
|
"code": 200,
|
|
"content": {"auth": account["auth"], "ui_config": config.get("ui_config", {})},
|
|
"message": "Authentication was successful.",
|
|
"success": True,
|
|
}
|
|
),
|
|
200,
|
|
)
|
|
elif any(a == account["auth"] for account in config["account_list"]):
|
|
account = next((i for i in config["account_list"] if i["auth"] == a), None)
|
|
return (
|
|
flask.jsonify(
|
|
{
|
|
"code": 200,
|
|
"content": account,
|
|
"message": "Authentication was successful.",
|
|
"success": True,
|
|
}
|
|
),
|
|
200,
|
|
)
|
|
else:
|
|
return (
|
|
flask.jsonify(
|
|
{
|
|
"code": 401,
|
|
"content": None,
|
|
"message": "The username and/or password provided was incorrect.",
|
|
"success": False,
|
|
}
|
|
),
|
|
401,
|
|
)
|
|
|