This commit is contained in:
@@ -187,17 +187,28 @@ class System:
|
||||
|
||||
class ActiveClient:
|
||||
"""
|
||||
The active client model in memory for quicker access
|
||||
The active client model in memory for quicker access
|
||||
"""
|
||||
websocket = None
|
||||
active_token: DiscordId = None
|
||||
nickname = None
|
||||
access_token = None
|
||||
nickname: str = None
|
||||
access_token: str = None
|
||||
|
||||
def __init__(self, websocket= None, active_token:DiscordId=None):
|
||||
def __init__(self, websocket=None, active_token: DiscordId = None, nickname: str = None, access_token: str = None):
|
||||
self.active_token = active_token
|
||||
self.websocket = websocket
|
||||
self.nickname = nickname
|
||||
self.access_token = access_token
|
||||
|
||||
def __str__(self):
|
||||
"""
|
||||
Returns a neatly formatted string representation of the ActiveClient object.
|
||||
"""
|
||||
return (f"--- Active Client ---\n"
|
||||
f"Active Token: {self.active_token if self.active_token else 'N/A'}\n"
|
||||
f"Nickname: {self.nickname if self.nickname else 'N/A'}\n"
|
||||
f"Access Token: {'[REDACTED]' if self.access_token else 'N/A'}\n"
|
||||
f"Websocket Connected: {'Yes' if self.websocket else 'No'}")
|
||||
|
||||
class UserRoles(str, Enum):
|
||||
ADMIN = "admin"
|
||||
|
||||
@@ -24,7 +24,8 @@ def role_required(required_role: UserRoles):
|
||||
auth_type = current_user_identity['type']
|
||||
|
||||
if auth_type == "node":
|
||||
node = app.active_clients.get("client_id")
|
||||
node = current_app.active_clients.get(user_id)
|
||||
print("Node", node)
|
||||
|
||||
if not node:
|
||||
abort(401, "Node not found or invalid token.")
|
||||
|
||||
@@ -45,7 +45,9 @@ async def request_token_route():
|
||||
# --- Logic for selecting a preferred ID based on client_id (TODO) ---
|
||||
|
||||
selected_id = avail_ids[0]
|
||||
print("Selected Discord ID: ", selected_id)
|
||||
current_app.active_clients[client_id].active_token = selected_id
|
||||
print(current_app.active_clients[client_id])
|
||||
|
||||
# --- End of logic for selecting a preferred ID ---
|
||||
|
||||
|
||||
@@ -26,6 +26,8 @@ async def register_client(websocket, client_id, client_nickname):
|
||||
# Create a JWT for the client
|
||||
current_app.active_clients[client_id].access_token = create_access_token(identity={"id": client_id, "username": client_nickname, "type": "node"})
|
||||
|
||||
print(current_app.active_clients[client_id])
|
||||
|
||||
# Start a task to listen for messages from this client
|
||||
asyncio.create_task(listen_to_client(websocket, client_id))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user