Merge pull request #130 from ThomasRubini/check_inputs

added some check
This commit is contained in:
Djalim Simaila 2023-03-30 18:17:02 +02:00 committed by GitHub
commit b1d50b5bdc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 52 additions and 7 deletions

View File

@ -226,6 +226,26 @@ def check_username(username: str) -> bool:
return True
def check_game_id(game_id: str) -> bool:
"""
Check if a game_id is valid using a set of rules
:param game_id: the game_id to check
:return: True or False depending on if the rules are respected
"""
if not game_id:
return False
if not game_id.isalnum():
return False
if not game_id == game_id.strip():
return False
if not len(game_id) == 6:
return False
return True
def generate_npc_text(npc: Npc, lang: str) -> dict:
"""

View File

@ -55,6 +55,8 @@ def create_game():
@routes_api.route("/getGameMembers", methods=["GET", "POST"])
def get_members():
game_id = flask.request.values.get("game_id")
if not game_logic.check_game_id(game_id):
return {"error": 1, "msg": "invalid game_id"}
game = game_logic.get_game(game_id)
if game is None:
return {"error": 1, "msg": "this game doesn't exist"}
@ -66,6 +68,8 @@ def get_members():
@routes_api.route("/joinGame", methods=["GET", "POST"])
def join_game():
game_id = flask.request.values.get("game_id")
if not game_logic.check_game_id(game_id):
return {"error": 1, "msg": "invalid game_id"}
username = flask.request.values.get("username")
if game_id is None or username is None:
return {"error": 1, "msg": "username or game id not set"}
@ -91,7 +95,10 @@ def join_game():
def is_owner():
if not flask.session:
return {"error": 0, "owner": False}
game = game_logic.get_game(flask.session["game_id"])
game_id = flask.session["game_id"]
if not game_logic.check_game_id(game_id):
return {"error": 1, "msg": "invalid game_id"}
game = game_logic.get_game(game_id)
if game is None:
return {"error": 0, "owner": False}
@ -104,7 +111,10 @@ def is_owner():
def has_joined():
if not flask.session:
return {"error": 0, "joined": False}
game = game_logic.get_game(flask.session["game_id"])
game_id = flask.session["game_id"]
if not game_logic.check_game_id(game_id):
return {"error": 1, "msg": "invalid game_id"}
game = game_logic.get_game(game_id)
if game is None:
return {"error": 0, "joined": False}
return {"error": 0, "joined": True}
@ -115,7 +125,10 @@ def start_game():
return {"error": 1, "msg": "No session"}
if not flask.session["is_owner"]:
return {"error": 1, "msg": "you are not the owner of this game"}
game = game_logic.get_game(flask.session["game_id"])
game_id = flask.session["game_id"]
if not game_logic.check_game_id(game_id):
return {"error": 1, "msg": "invalid game_id"}
game = game_logic.get_game(game_id)
if game is None:
return {"error": 1, "msg": "this game doesn't exist"}
if game.has_started:
@ -129,7 +142,10 @@ def start_game():
def get_data():
if not flask.session:
return {"error": 1, "msg": "No session"}
game = game_logic.get_game(flask.session["game_id"])
game_id = flask.session["game_id"]
if not game_logic.check_game_id(game_id):
return {"error": 1, "msg": "invalid game_id"}
game = game_logic.get_game(game_id)
if game is None:
return {"error": 1, "msg": "this game doesn't exist"}
@ -159,7 +175,10 @@ def get_npc_reaction():
if not flask.session:
return {"error": 1, "msg": "No session"}
game = game_logic.get_game(flask.session["game_id"])
game_id = flask.session["game_id"]
if not game_logic.check_game_id(game_id):
return {"error": 1, "msg": "invalid game_id"}
game = game_logic.get_game(game_id)
if game is None:
return {"error": 1, "msg": "this game doesn't exist"}
npc_id = flask.request.values.get("npcid")
@ -193,7 +212,10 @@ def get_reaction():
def game_progress():
if not flask.session:
return {"error": 1, "msg": "No session"}
game = game_logic.get_game(flask.session["game_id"])
game_id = flask.session["game_id"]
if not game_logic.check_game_id(game_id):
return {"error": 1, "msg": "invalid game_id"}
game = game_logic.get_game(game_id)
if game is None:
return {"error": 1, "msg": "this game doesn't exist"}
@ -210,7 +232,10 @@ def game_progress():
def check_anwser():
if not flask.session:
return {"error": 1, "msg": "No session"}
game = game_logic.get_game(flask.session["game_id"])
game_id = flask.session["game_id"]
if not game_logic.check_game_id(game_id):
return {"error": 1, "msg": "invalid game_id"}
game = game_logic.get_game(game_id)
if game is None:
return {"error": 1, "msg": "this game doesn't exist"}