From: Aleksander Łukasz <aleksander.lukasz@nowoczesnapolska.org.pl>
Date: Thu, 5 Sep 2013 12:08:38 +0000 (+0200)
Subject: Non authenticated users aren't allowed to use forum for now
X-Git-Url: https://git.mdrn.pl/edumed.git/commitdiff_plain/87ec81224b9b1d395e78cb283beced5e6a60bb53?ds=inline

Non authenticated users aren't allowed to use forum for now
---

diff --git a/catalogue/templates/catalogue/lesson/lesson_detail.html b/catalogue/templates/catalogue/lesson/lesson_detail.html
index adc5dc3..f08b5b8 100755
--- a/catalogue/templates/catalogue/lesson/lesson_detail.html
+++ b/catalogue/templates/catalogue/lesson/lesson_detail.html
@@ -113,13 +113,13 @@
 </footer>
 
 
-{% if object.forum_topics.all.count %}
-<h2>Na forum</h2>
-<ul>
-{% for forum_topic in object.forum_topics.all %}
-    <li><a href="{{forum_topic.pybb_topic.get_absolute_url}}">{{forum_topic.pybb_topic.name}}</a></li>
-{% endfor %}
-</ul>
+{% if request.user.is_authenticated and object.forum_topics.all.count %}
+    <h2>Na forum</h2>
+    <ul>
+    {% for forum_topic in object.forum_topics.all %}
+        <li><a href="{{forum_topic.pybb_topic.get_absolute_url}}">{{forum_topic.pybb_topic.name}}</a></li>
+    {% endfor %}
+    </ul>
 {% endif %}
 
 </div>
diff --git a/edumed/settings.d/40-middleware.py b/edumed/settings.d/40-middleware.py
index 8a3d2e6..b9c614d 100644
--- a/edumed/settings.d/40-middleware.py
+++ b/edumed/settings.d/40-middleware.py
@@ -23,4 +23,5 @@ MIDDLEWARE_CLASSES = tuple(x for x in (
     'django.middleware.cache.FetchFromCacheMiddleware',
     'fnpdjango.middleware.SetRemoteAddrFromXRealIP',
     'pybb.middleware.PybbMiddleware',
+    'forum.middleware.ForumMiddleware'
 ) if x is not None)
diff --git a/edumed/templates/home.html b/edumed/templates/home.html
index 59a24c6..e7977e8 100755
--- a/edumed/templates/home.html
+++ b/edumed/templates/home.html
@@ -43,7 +43,7 @@
     <li><a href="{{ package_student_url }}">Pobierz wszystkie lekcje w&nbsp;wersji dla ucznia</a></li>
     <li><a href="{% url 'catalogue_lesson' 'slowniczek' %}">Słowniczek</a></li>
     <li><a href="{% url 'catalogue_lesson' 'metody' %}">Metody edukacyjne</a></li>
-    <li><a href="{% url 'pybb:index' %}">Forum</a></li>
+    {% if request.user.is_authenticated %}<li><a href="{% url 'pybb:index' %}">Forum</a></li>{% endif %}
     <li><a href="http://nowoczesnapolska.org.pl/prywatnosc/">Polityka prywatności i ciasteczka</a></li>
 </ul>
 </section>
diff --git a/forum/middleware.py b/forum/middleware.py
new file mode 100644
index 0000000..fb0a605
--- /dev/null
+++ b/forum/middleware.py
@@ -0,0 +1,14 @@
+from urllib import urlencode
+
+from django.contrib.auth import REDIRECT_FIELD_NAME
+from django.http import HttpResponseRedirect
+from django.core.urlresolvers import reverse
+from django_cas.views import login as cas_login
+
+
+class ForumMiddleware:
+    def process_request(self, request):
+        if request.path.startswith(reverse('pybb:index')) \
+            and (not hasattr(request, 'user') or not request.user.is_authenticated()):
+            params = urlencode({REDIRECT_FIELD_NAME: request.get_full_path()})
+            return HttpResponseRedirect(reverse(cas_login) + '?' + params)