#32 Disable file download
* refactors: attached files can only be downloaded by users with shared access * adds hint on unshared data being unshared for compensation, ema, eco-account * minor optical enhancement for user contact form
This commit is contained in:
@@ -14,7 +14,7 @@ from konova.decorators import *
|
||||
from konova.forms import RemoveModalForm, SimpleGeomForm, NewDocumentForm
|
||||
from konova.utils.documents import get_document, remove_document
|
||||
from konova.utils.generators import generate_qr_code
|
||||
from konova.utils.message_templates import FORM_INVALID, IDENTIFIER_REPLACED
|
||||
from konova.utils.message_templates import FORM_INVALID, IDENTIFIER_REPLACED, DATA_UNSHARED_EXPLANATION
|
||||
from konova.utils.user_checks import in_group
|
||||
|
||||
|
||||
@@ -173,6 +173,9 @@ def detail_view(request: HttpRequest, id: str):
|
||||
sum_after_states = after_states.aggregate(Sum("surface"))["surface__sum"] or 0
|
||||
diff_states = abs(sum_before_states - sum_after_states)
|
||||
|
||||
if not is_data_shared:
|
||||
messages.info(request, DATA_UNSHARED_EXPLANATION)
|
||||
|
||||
context = {
|
||||
"obj": comp,
|
||||
"geom_form": geom_form,
|
||||
@@ -268,6 +271,15 @@ def get_document_view(request: HttpRequest, doc_id: str):
|
||||
|
||||
"""
|
||||
doc = get_object_or_404(CompensationDocument, id=doc_id)
|
||||
user = request.user
|
||||
instance = doc.instance
|
||||
# File download only possible if related instance is shared with user
|
||||
if not instance.users.filter(id=user.id):
|
||||
messages.info(
|
||||
request,
|
||||
DATA_UNSHARED
|
||||
)
|
||||
return redirect("compensation:detail", id=instance.id)
|
||||
return get_document(doc)
|
||||
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ from konova.forms import RemoveModalForm, SimpleGeomForm, NewDocumentForm, Recor
|
||||
from konova.settings import DEFAULT_GROUP, ZB_GROUP, ETS_GROUP
|
||||
from konova.utils.documents import get_document, remove_document
|
||||
from konova.utils.generators import generate_qr_code
|
||||
from konova.utils.message_templates import IDENTIFIER_REPLACED, FORM_INVALID
|
||||
from konova.utils.message_templates import IDENTIFIER_REPLACED, FORM_INVALID, DATA_UNSHARED, DATA_UNSHARED_EXPLANATION
|
||||
from konova.utils.user_checks import in_group
|
||||
|
||||
|
||||
@@ -197,6 +197,9 @@ def detail_view(request: HttpRequest, id: str):
|
||||
)
|
||||
actions = acc.actions.all()
|
||||
|
||||
if not is_data_shared:
|
||||
messages.info(request, DATA_UNSHARED_EXPLANATION)
|
||||
|
||||
context = {
|
||||
"obj": acc,
|
||||
"geom_form": geom_form,
|
||||
@@ -401,6 +404,15 @@ def get_document_view(request: HttpRequest, doc_id: str):
|
||||
|
||||
"""
|
||||
doc = get_object_or_404(EcoAccountDocument, id=doc_id)
|
||||
user = request.user
|
||||
instance = doc.instance
|
||||
# File download only possible if related instance is shared with user
|
||||
if not instance.users.filter(id=user.id):
|
||||
messages.info(
|
||||
request,
|
||||
DATA_UNSHARED
|
||||
)
|
||||
return redirect("compensation:acc-detail", id=instance.id)
|
||||
return get_document(doc)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user