feat: harden file sharing and integrity

This commit is contained in:
2026-07-30 14:26:47 +02:00
parent 85606d5580
commit 835eacfc5d
28 changed files with 2714 additions and 102 deletions

View File

@@ -96,6 +96,7 @@ from govoplan_files.backend.storage.provenance import (
source_provenance_from_metadata,
source_revision_from_metadata,
)
from govoplan_files.backend.storage.share_state import file_share_is_active
FILES_CONNECTOR_SETTINGS_COLLECTIONS = (
@@ -1022,17 +1023,7 @@ def _asset_response(
.order_by(FileShare.created_at.desc())
.all()
)
shares = [
FileShareResponse(
id=row.id,
target_type=row.target_type,
target_id=row.target_id,
permission=row.permission,
created_at=row.created_at.isoformat(),
revoked_at=row.revoked_at.isoformat() if row.revoked_at else None,
)
for row in rows
]
shares = [_file_share_response(row) for row in rows]
return FileAssetResponse(
id=asset.id,
tenant_id=asset.tenant_id,
@@ -1059,11 +1050,16 @@ def _asset_response(
def _file_share_response(row: FileShare) -> FileShareResponse:
return FileShareResponse(
id=row.id,
file_asset_id=row.file_asset_id,
target_type=row.target_type,
target_id=row.target_id,
permission=row.permission,
created_by_user_id=row.created_by_user_id,
created_at=row.created_at.isoformat(),
expires_at=row.expires_at.isoformat() if row.expires_at else None,
revoked_at=row.revoked_at.isoformat() if row.revoked_at else None,
revoked_by_user_id=row.revoked_by_user_id,
active=file_share_is_active(row),
)