diff --git a/ktvmanager/lib/auth.py b/ktvmanager/lib/auth.py index aff6801..8ef35fd 100644 --- a/ktvmanager/lib/auth.py +++ b/ktvmanager/lib/auth.py @@ -15,5 +15,14 @@ def requires_basic_auth(f): auth = request.authorization if not auth or not check_auth(auth.username, auth.password): return jsonify({"message": "Could not verify"}), 401, {'WWW-Authenticate': 'Basic realm="Login Required"'} - return f(auth.username, *args, **kwargs) + return f(auth.username,auth.password, *args, **kwargs) return decorated + +def check_login(username, password): + users = get_users() + try: + user_password = users[username] + assert user_password == password + return jsonify({"auth": "Success"}) + except KeyError: + return jsonify({"auth": "Fail"}) \ No newline at end of file diff --git a/routes/api.py b/routes/api.py index 95482a9..6d63bfa 100644 --- a/routes/api.py +++ b/routes/api.py @@ -1,13 +1,13 @@ from flask import Blueprint, jsonify from ktvmanager.lib.database import get_user_accounts, get_stream_names, single_check, add_account, delete_account, get_user_id_from_username from ktvmanager.lib.get_urls import get_latest_urls_from_dns -from ktvmanager.lib.auth import requires_basic_auth +from ktvmanager.lib.auth import requires_basic_auth, check_login api_blueprint = Blueprint("api", __name__) @api_blueprint.route("/getUserAccounts") @requires_basic_auth -def get_user_accounts_route(username): +def get_user_accounts_route(username, password): user_id = get_user_id_from_username(username) if user_id: return get_user_accounts(user_id) @@ -15,27 +15,32 @@ def get_user_accounts_route(username): @api_blueprint.route("/getStreamNames") @requires_basic_auth -def get_stream_names_route(username): +def get_stream_names_route(username, password): return get_stream_names() @api_blueprint.route("/getUserAccounts/streams") @requires_basic_auth -def get_user_accounts_streams_route(username): +def get_user_accounts_streams_route(username, password): return jsonify(get_latest_urls_from_dns()) @api_blueprint.route("/singleCheck", methods=["POST"]) @requires_basic_auth -def single_check_route(username): +def single_check_route(username, password): return single_check() @api_blueprint.route("/addAccount", methods=["POST"]) @requires_basic_auth -def add_account_route(username): +def add_account_route(username, password): user_id = get_user_id_from_username(username) return add_account(user_id) @api_blueprint.route("/deleteAccount", methods=["POST"]) @requires_basic_auth -def delete_account_route(username): +def delete_account_route(username, password): user_id = get_user_id_from_username(username) - return delete_account(user_id) \ No newline at end of file + return delete_account(user_id) + +@api_blueprint.route("/Login") +@requires_basic_auth +def login_route(username, password): + return check_login(username, password) \ No newline at end of file