1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
""" One view method for AJAX requests by SessionSecurity objects. """
import time
from datetime import datetime, timedelta
from django.contrib import auth
from django.views import generic
from django import http
from .utils import get_last_activity
__all__ = ['PingView', ]
class PingView(generic.View):
"""
This view is just in charge of returning the number of seconds since the
'real last activity' that is maintained in the session by the middleware.
"""
def get(self, request, *args, **kwargs):
if '_session_security' not in request.session:
# It probably has expired already
return http.HttpResponse('"logout"',
content_type='application/json')
last_activity = get_last_activity(request.session)
inactive_for = (datetime.now() - last_activity).seconds
return http.HttpResponse(inactive_for,
content_type='application/json')
|