forked from EngineTribe/EngineTribe
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdepends.py
More file actions
53 lines (44 loc) · 1.79 KB
/
depends.py
File metadata and controls
53 lines (44 loc) · 1.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
from fastapi import Header, Request
from typing import Optional
from config import VERIFY_USER_AGENT
from database.db_access import DBAccessLayer
from session.session_access import get_session_by_id
from models import ErrorMessageException
def is_valid_user(user_agent: str | None = Header(default=None)):
if VERIFY_USER_AGENT:
if user_agent is None or not (
("GameMaker" in user_agent) # PC
or ("Dalvik" in user_agent) # Android
or ("Android" in user_agent) # Android
or ("EngineBot" in user_agent) # Engine Bot
or ("PlayStation" in user_agent) # PlayStation Vita
or ("libcurl-agent" in user_agent) # GMS2 (3.3.0+) PC
):
raise ErrorMessageException(
error_type="005",
message="Illegal client.")
else:
if user_agent is None:
raise ErrorMessageException(
error_type="005",
message="Illegal client.")
async def create_dal(request: Request):
async with request.app.state.db.async_session() as session:
async with session.begin():
yield DBAccessLayer(session)
async def verify_and_get_session(request: Request):
auth_code = (await request.form()).get("auth_code")
if auth_code is None:
raise ErrorMessageException(
error_type="034",
message="Permission denied."
)
session = await get_session_by_id(request.app.state.redis, auth_code)
if session is None:
raise ErrorMessageException(
error_type="002",
message="Session expired."
)
return session
def connection_count_inc(request: Request):
request.app.state.connection_count += 1