forked from tpd94/CDRM-Project
Add module docstring to user_info.py for improved documentation; implement username sanitization and enhance error logging for better debugging.
This commit is contained in:
parent
8e076a4298
commit
78d59b295c
@ -1,7 +1,10 @@
|
|||||||
from flask import Blueprint, request, jsonify, session
|
"""Module to handle the user info request."""
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import glob
|
import glob
|
||||||
import logging
|
import logging
|
||||||
|
import re
|
||||||
|
from flask import Blueprint, request, jsonify, session
|
||||||
from custom_functions.database.user_db import (
|
from custom_functions.database.user_db import (
|
||||||
fetch_api_key,
|
fetch_api_key,
|
||||||
fetch_styled_username,
|
fetch_styled_username,
|
||||||
@ -11,19 +14,30 @@ from custom_functions.database.user_db import (
|
|||||||
user_info_bp = Blueprint("user_info_bp", __name__)
|
user_info_bp = Blueprint("user_info_bp", __name__)
|
||||||
|
|
||||||
|
|
||||||
|
def sanitize_username(username):
|
||||||
|
"""Sanitize the username."""
|
||||||
|
return re.sub(r"[^a-zA-Z0-9_\-]", "_", username).lower()
|
||||||
|
|
||||||
|
|
||||||
@user_info_bp.route("/userinfo", methods=["POST"])
|
@user_info_bp.route("/userinfo", methods=["POST"])
|
||||||
def user_info():
|
def user_info():
|
||||||
|
"""Handle the user info request."""
|
||||||
username = session.get("username")
|
username = session.get("username")
|
||||||
if not username:
|
if not username:
|
||||||
try:
|
try:
|
||||||
headers = request.headers
|
headers = request.headers
|
||||||
api_key = headers["Api-Key"]
|
api_key = headers["Api-Key"]
|
||||||
username = fetch_username_by_api_key(api_key)
|
username = fetch_username_by_api_key(api_key)
|
||||||
except:
|
except Exception as e:
|
||||||
|
logging.exception("Error retrieving username by API key, %s", {e})
|
||||||
return jsonify({"message": "False"}), 400
|
return jsonify({"message": "False"}), 400
|
||||||
|
|
||||||
|
safe_username = sanitize_username(username)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
base_path = os.path.join(os.getcwd(), "configs", "CDMs", username.lower())
|
base_path = os.path.join(
|
||||||
|
os.getcwd(), "configs", "CDMs", "users_uploaded", safe_username
|
||||||
|
)
|
||||||
pr_files = [
|
pr_files = [
|
||||||
os.path.basename(f)
|
os.path.basename(f)
|
||||||
for f in glob.glob(os.path.join(base_path, "PR", "*.prd"))
|
for f in glob.glob(os.path.join(base_path, "PR", "*.prd"))
|
||||||
@ -43,5 +57,5 @@ def user_info():
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logging.exception("Error retrieving device files")
|
logging.exception("Error retrieving device files, %s", {e})
|
||||||
return jsonify({"message": "False"}), 500
|
return jsonify({"message": "False"}), 500
|
||||||
|
Loading…
x
Reference in New Issue
Block a user