[extensions-web] views: Hide contact information for everybody but the reporter and extension author



commit c363bb840820109dfb0fbfac4cde6b6a92ca3141
Author: Jasper St. Pierre <jstpierre mecheye net>
Date:   Thu Jun 27 15:50:42 2013 -0400

    views: Hide contact information for everybody but the reporter and extension author

 .../errorreports/templates/errorreports/view.html  |    2 ++
 sweettooth/errorreports/views.py                   |   12 +++++++++++-
 2 files changed, 13 insertions(+), 1 deletions(-)
---
diff --git a/sweettooth/errorreports/templates/errorreports/view.html 
b/sweettooth/errorreports/templates/errorreports/view.html
index e38e752..f6999a8 100644
--- a/sweettooth/errorreports/templates/errorreports/view.html
+++ b/sweettooth/errorreports/templates/errorreports/view.html
@@ -8,9 +8,11 @@
 <div>{{ report.comment|default:"No comments" }}</div>
 </div>
 
+{% if show_email %}
 <h3> Contact information </h3>
 <p>Please email the reporter back to respond. The user's address is:</p>
 <a class="email" href="mailto:{{ report.user.email }}">{{ report.user.email }}</a>
+{% endif %}
 {% endblock %}
 
 {% block navclass %}main{% endblock %}
diff --git a/sweettooth/errorreports/views.py b/sweettooth/errorreports/views.py
index 0ad336c..d0eaf8d 100644
--- a/sweettooth/errorreports/views.py
+++ b/sweettooth/errorreports/views.py
@@ -40,10 +40,20 @@ def report_error(request, extension):
                    form=form)
     return render(request, 'errorreports/report.html', context)
 
+def can_see_reporter_email(user, report):
+    if user.is_superuser:
+        return True
+
+    if user in (report.user, report.extension.creator):
+        return True
+
+    return False
+
 @login_required
 @model_view(ErrorReport)
 def view_error_report(request, obj):
-    return render(request, 'errorreports/view.html', dict(report=obj))
+    return render(request, 'errorreports/view.html', dict(report=obj,
+                                                          show_email=can_see_reporter_email(request.user, 
obj)))
 
 def send_email_on_error_reported(sender, request, extension, report, **kwargs):
     url = request.build_absolute_uri(reverse('errorreports.views.view_error_report',


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]