23 lines
No EOL
680 B
Python
23 lines
No EOL
680 B
Python
"""Private file guards for the documents application."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from common.private_files.registry import register
|
|
|
|
from .models import ManagedDocument
|
|
from .permissions import user_has_document_permission
|
|
|
|
|
|
def _document_version_guard(version, user) -> bool:
|
|
document = getattr(version, "document", None)
|
|
if document is None:
|
|
return False
|
|
return user_has_document_permission(
|
|
user,
|
|
document,
|
|
required_permission=ManagedDocument.PERMISSION_VIEW,
|
|
)
|
|
|
|
|
|
register("documents", "DocumentVersion", "file", _document_version_guard)
|
|
register("documents", "DocumentVersion", "thumbnail", _document_version_guard) |