use better sessions
authorMaciej Tronowski <mtro@man.poznan.pl>
Mon, 7 Sep 2015 17:05:38 +0000 (19:05 +0200)
committerDawid Jagieła <lightnir@gmail.com>
Sat, 12 Sep 2015 10:09:37 +0000 (12:09 +0200)
plgng/settings_common.py
plgng/urls.py
qcg/static/qcg/main.css
qcg/templates/qcg/base.html
qcg/templates/qcg/gridftp_upload.html

index 337f557..da27cd2 100644 (file)
@@ -33,6 +33,7 @@ INSTALLED_APPS = (
     'django.contrib.webdesign',
     'qcg',
     'filex',
+    'better_sessions',
     'django_openid_auth',
     'bootstrap3',
 )
@@ -45,10 +46,12 @@ MIDDLEWARE_CLASSES = (
     'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
     'django.contrib.messages.middleware.MessageMiddleware',
     'django.middleware.clickjacking.XFrameOptionsMiddleware',
+    'better_sessions.middleware.BetterSessionsMiddleware',
 )
 
 TEMPLATE_CONTEXT_PROCESSORS = global_settings.TEMPLATE_CONTEXT_PROCESSORS + (
     'django.core.context_processors.request',
+    'better_sessions.context_processors.settings',
 )
 
 ROOT_URLCONF = 'plgng.urls'
@@ -107,8 +110,7 @@ OPENID_STRICT_USERNAMES = True
 
 
 SESSION_COOKIE_NAME = 'qcg_session'
-SESSION_COOKIE_AGE = 60 * 60 * 24 * 6  # 6 days, length of user proxy from openid is 1 week
-SESSION_SERIALIZER = 'django.contrib.sessions.serializers.PickleSerializer'
+SESSION_EXPIRE_AT_BROWSER_CLOSE = True
 
 
 # 3-rd party settings
index e4324f9..931bd77 100644 (file)
@@ -6,5 +6,6 @@ urlpatterns = patterns('',
     url(r'^grappelli/', include('grappelli.urls')),  # grappelli URLS
 
     url(r'^filex/', include('filex.urls', namespace='filex')),
+    url(r'^session/', include('better_sessions.urls', namespace='session')),
     url(r'^', include('qcg.urls')),
 )
index f3091c2..6e46b1e 100644 (file)
@@ -189,3 +189,18 @@ textarea {
         z-index: 1;
     }
 }
+
+
+/* better session alerts */
+
+#better-sessions-warn,
+#better-sessions-expire {
+    position: fixed;
+    left: 15px;
+    right: 15px;
+    margin: 0 auto;
+    max-width: 800px;
+    z-index: 1050;
+    top: 10px;
+    text-align: center;
+}
index fcd82f0..56f37e1 100644 (file)
@@ -78,6 +78,8 @@
             {% endfor %}
         {% endblock messages %}
 
+        {% include 'better_sessions/alerts.html' %}
+
         {% block container %}
 
 
 
     <script src="{% static 'qcg/jquery/jquery.min.js' %}"></script>
     <script src="{% static 'qcg/bootstrap/js/bootstrap.min.js' %}"></script>
+    <script src="{% static 'qcg/cookie/jquery.cookie.min.js' %}"></script>
+    <script src="{% static 'qcg/globals.js' %}"></script>
+    <script src="{% static 'filex/underscore/underscore-min.js' %}"></script>
+    <script src="{% static 'filex/humanize/humanize-duration.js' %}"></script>
+    <script src="{% static 'better_sessions/better_sessions.js' %}"></script>
+
+    {% if user.is_authenticated %}
+        <script>
+            var psnc = psnc || {},
+                bs = new psnc.BetterSession({
+                    warnAfter: {{ session_warn_after }},
+                    expireAfter: {{ session_expire_after }},
+                    pingUrl: '{% url 'session:ping' %}'
+                });
+        </script>
+    {% endif %}
+
     {% block extra_js %}{% endblock %}
 </body>
 </html>
index caaf3e6..d5f6b24 100644 (file)
@@ -11,5 +11,7 @@
 {% endblock extra_js %}
 
 {% block body %}
+    {% include 'better_sessions/alerts.html' %}
+
     {% include 'filex/upload.html' %}
 {% endblock body %}