Skip to content

Commit 6925ef2

Browse files
committed
🩹 Do not send link users can't read in problem report resolution
1 parent 355b5f6 commit 6925ef2

File tree

3 files changed

+18
-0
lines changed

3 files changed

+18
-0
lines changed

froide/foirequest/auth.py

+8
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
from django.conf import settings
55
from django.db.models import Q
66
from django.http import HttpRequest
7+
from django.test import RequestFactory
78
from django.urls import reverse
89
from django.utils.crypto import constant_time_compare, salted_hmac
910
from django.utils.translation import override
@@ -25,6 +26,13 @@
2526
from .models import FoiAttachment, FoiMessage, FoiProject, FoiRequest
2627

2728

29+
def get_request_for_user(user, path: str):
30+
request_factory = RequestFactory()
31+
request = request_factory.get(path)
32+
request.user = user
33+
return request
34+
35+
2836
def get_campaign_auth_foirequests_filter(request: HttpRequest, fk_path=None):
2937
if not request.user.is_staff:
3038
return None

froide/problem/templates/problem/email_problem_resolved.txt

+2
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,12 @@
55
{% blocktrans with title=title %}We have resolved the problem you reported on the request “{{ title }}”.{% endblocktrans %}
66
{% endif %}
77
{% if report.resolution %}{{ report.resolution }}{% endif %}
8+
{% if can_read_request %}
89

910
{% trans "You can go to the request here:" %}
1011

1112
{{ url }}
13+
{% endif %}
1214
{% blocktrans with site_name=site_name %}
1315
Cheers,
1416
{{ site_name }}{% endblocktrans %}

froide/problem/utils.py

+8
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
from django.urls import reverse
55
from django.utils.translation import gettext_lazy as _
66

7+
from froide.foirequest.auth import can_read_foirequest, get_request_for_user
8+
79

810
def inform_managers(report):
911
admin_url = settings.SITE_URL + reverse(
@@ -23,6 +25,11 @@ def inform_managers(report):
2325
)
2426

2527

28+
def can_read(user, foirequest):
29+
request = get_request_for_user(user, foirequest.get_absolute_url())
30+
return can_read_foirequest(foirequest, request)
31+
32+
2633
def inform_user_problem_resolved(report):
2734
if report.auto_submitted or not report.user:
2835
return False
@@ -39,6 +46,7 @@ def inform_user_problem_resolved(report):
3946
report.message.get_absolute_short_url()
4047
),
4148
"site_name": settings.SITE_NAME,
49+
"can_read_request": can_read(report.user, foirequest),
4250
},
4351
)
4452

0 commit comments

Comments
 (0)