Spaces:
Sleeping
Sleeping
import flask | |
import src.functions.config | |
authBP = flask.Blueprint("auth", __name__) | |
async def authFunction(): | |
a = flask.request.args.get("a") # AUTH | |
p = flask.request.args.get("p") # PASSWORD | |
u = flask.request.args.get("u") # USERNAME | |
config = src.functions.config.readConfig() | |
rules = flask.request.args.get("rules") # 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, | |
) | |