Add nonce

Signed-off-by: Tiago Garcia <tiago.rgarcia@ua.pt>
This commit is contained in:
Tiago Garcia 2024-11-20 14:58:14 +00:00
parent afbde75888
commit 7fd5f1bcd8
Signed by: TiagoRG
GPG Key ID: DFCD48E3F420DB42
5 changed files with 6 additions and 5 deletions

View File

@ -11,6 +11,7 @@ class File(db_connection.Model):
created_at = db_connection.Column(db_connection.Integer, nullable=False) created_at = db_connection.Column(db_connection.Integer, nullable=False)
key = db_connection.Column(db_connection.String, nullable=False) key = db_connection.Column(db_connection.String, nullable=False)
alg = db_connection.Column(db_connection.String, nullable=False) alg = db_connection.Column(db_connection.String, nullable=False)
nonce = db_connection.Column(db_connection.String, nullable=False)
org_id = db_connection.Column(db_connection.Integer, db_connection.ForeignKey('organizations.id'), nullable=False) org_id = db_connection.Column(db_connection.Integer, db_connection.ForeignKey('organizations.id'), nullable=False)
creator_id = db_connection.Column(db_connection.Integer, db_connection.ForeignKey('users.id'), nullable=False) creator_id = db_connection.Column(db_connection.Integer, db_connection.ForeignKey('users.id'), nullable=False)
org = db_connection.relationship('Organization', backref=db_connection.backref('org_files', uselist=False)) org = db_connection.relationship('Organization', backref=db_connection.backref('org_files', uselist=False))
@ -25,6 +26,7 @@ class File(db_connection.Model):
"created_at": self.created_at, "created_at": self.created_at,
"key": self.key, "key": self.key,
"alg": self.alg, "alg": self.alg,
"nonce": self.nonce,
"org": {"id": self.org.id, "name": self.org.name}, "org": {"id": self.org.id, "name": self.org.name},
"creator": {"id": self.creator.id, "username": self.creator.username} "creator": {"id": self.creator.id, "username": self.creator.username}
} }

View File

@ -20,5 +20,4 @@ class Organization(db_connection.Model):
"email": user_data["email"], "email": user_data["email"],
"status": user_data["status"] "status": user_data["status"]
}} for user_id, user_data in self.users.items()], }} for user_id, user_data in self.users.items()],
# "files": [{"id": file.id, "name": file.name, "file_handle": file.file_handle} for file in self.files]
} }

View File

@ -19,5 +19,4 @@ class User(db_connection.Model):
"full_name": self.full_name, "full_name": self.full_name,
"email": self.email, "email": self.email,
"orgs": [{"id": org_id, "name": org_data["name"], "status": org_data["status"]} for org_id, org_data in self.orgs.items()], "orgs": [{"id": org_id, "name": org_data["name"], "status": org_data["status"]} for org_id, org_data in self.orgs.items()],
# "files": [{"id": file.id, "name": file.name, "file_handle": file.file_handle} for file in self.files]
} }

View File

@ -48,7 +48,7 @@ def file_upload_metadata():
data = request.json data = request.json
if type(data) is str: if type(data) is str:
data = json.loads(data) data = json.loads(data)
if "document_name" not in data or "key" not in data or "alg" not in data: if "document_name" not in data or "key" not in data or "alg" not in data or "nonce" not in data:
return jsonify({"error": "Missing required fields"}), 400 return jsonify({"error": "Missing required fields"}), 400
org = OrganizationService.get_organization(session.org_id) org = OrganizationService.get_organization(session.org_id)
@ -59,7 +59,7 @@ def file_upload_metadata():
if not user: if not user:
return jsonify({"error": "User not found"}), 404 return jsonify({"error": "User not found"}), 404
file = upload_service.create_file(session.token, org, user, data["document_name"], data["key"], data["alg"]) file = upload_service.create_file(session.token, org, user, data["document_name"], data["key"], data["alg"], data["nonce"])
return jsonify(file.to_dict()), 201 return jsonify(file.to_dict()), 201

View File

@ -13,7 +13,7 @@ class FileService:
def __init__(self): def __init__(self):
self.current_requests = {} self.current_requests = {}
def create_file(self, session_token: str, org: Organization, user: User, file_name: str, key: str, alg: str) -> File: def create_file(self, session_token: str, org: Organization, user: User, file_name: str, key: str, alg: str, nonce: str) -> File:
file = File( file = File(
file_handle = None, file_handle = None,
document_handle = get_hash(file_name), document_handle = get_hash(file_name),
@ -21,6 +21,7 @@ class FileService:
created_at = int(datetime.now().timestamp()), created_at = int(datetime.now().timestamp()),
key = key, key = key,
alg = alg, alg = alg,
nonce = nonce,
org_id = org.id, org_id = org.id,
creator_id = user.id, creator_id = user.id,
org = org, org = org,