Non authenticated users aren't allowed to use forum for now
authorAleksander Łukasz <aleksander.lukasz@nowoczesnapolska.org.pl>
Thu, 5 Sep 2013 12:08:38 +0000 (14:08 +0200)
committerAleksander Łukasz <aleksander.lukasz@nowoczesnapolska.org.pl>
Thu, 5 Sep 2013 12:26:47 +0000 (14:26 +0200)
catalogue/templates/catalogue/lesson/lesson_detail.html
edumed/settings.d/40-middleware.py
edumed/templates/home.html
forum/middleware.py [new file with mode: 0644]

index adc5dc3..f08b5b8 100755 (executable)
 </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>
index 8a3d2e6..b9c614d 100644 (file)
@@ -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)
index 59a24c6..e7977e8 100755 (executable)
@@ -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 (file)
index 0000000..fb0a605
--- /dev/null
@@ -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)