feat: harden file sharing and integrity
This commit is contained in:
@@ -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),
|
||||
)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user