diff --git a/src/packetserver/server/__init__.py b/src/packetserver/server/__init__.py index 5dd57bc..0bd505e 100644 --- a/src/packetserver/server/__init__.py +++ b/src/packetserver/server/__init__.py @@ -54,6 +54,7 @@ class Server: self.storage = ZODB.FileStorage.FileStorage(self.data_file) self.db = ZODB.DB(self.storage) with self.db.transaction() as conn: + logging.debug(f"checking for datastructures: conn.root.keys(): {list(conn.root().keys())}") if 'config' not in conn.root(): logging.debug("no config, writing blank default config") conn.root.config = PersistentMapping(deepcopy(default_server_config)) @@ -66,7 +67,7 @@ class Server: conn.root.users = PersistentMapping() if 'messages' not in conn.root(): logging.debug("messages container missing, creating bucket") - conn.root.users = PersistentMapping() + conn.root.messages = PersistentMapping() if 'SYSTEM' not in conn.root.users: logging.debug("Creating system user for first time.") User('SYSTEM', hidden=True, enabled=False).write_new(conn.root()) @@ -103,11 +104,14 @@ class Server: blacklisted = True # user object check + logging.debug(f"checking user existence for {base}") + logging.debug(f"users in db right now: {list(storage.root.users.keys())}") if base in storage.root.users: logging.debug(f"User {base} exists in db.") u = storage.root.users[base] u.seen() else: + logging.debug(f"User {base} doesn't exist in db") logging.info(f"Creating new user {base}") u = User(base.upper().strip()) u.write_new(storage.root()) diff --git a/src/packetserver/server/objects.py b/src/packetserver/server/objects.py index cbf6770..bbca609 100644 --- a/src/packetserver/server/objects.py +++ b/src/packetserver/server/objects.py @@ -104,8 +104,10 @@ class Object(persistent.Persistent): db.root.objects[self.uuid].owner = user.uuid if old_owner_uuid: if old_owner: + logging.debug(f"The object has an old owner user: {old_owner}") old_owner.remove_obj_uuid(self.uuid) - logging.debug("adding object uuid to user objects set") + logging.debug(f"adding this object uuid to user objects set ({self.uuid})") + logging.debug(f"user {user} objects before: {user.object_uuids}") user.add_obj_uuid(self.uuid) logging.debug(f"user objects now: {user.object_uuids}") else: @@ -329,15 +331,14 @@ def handle_object_post(req: Request, conn: PacketServerConnection, db: ZODB.DB): except: logging.debug(f"Error parsing new object:\n{format_exc()}") send_blank_response(conn, req, status_code=400) - retur + return + username = ax25.Address(conn.remote_callsign).call.upper().strip() + with db.transaction() as db_conn: + logging.debug(f"User {username}'s objects: {db_conn.root.users[username].object_uuids}") logging.debug(f"writing new object: {obj}") obj.write_new(db) - with db.transaction() as db_conn: - logging.debug(f"looking up new object") - new_obj = Object.get_object_by_uuid(obj.uuid, db_conn.root()) - username = ax25.Address(conn.remote_callsign).call.upper().strip() logging.debug("chowning new object") - new_obj.chown(username, db) + obj.chown(username, db) send_blank_response(conn, req, status_code=201, payload=str(obj.uuid)) def handle_object_update(req: Request, conn: PacketServerConnection, db: ZODB.DB):