2015-11-06 12:53:52 +00:00
|
|
|
# coding=utf-8
|
|
|
|
import time
|
|
|
|
import json
|
|
|
|
import urllib
|
2016-06-23 04:19:16 +00:00
|
|
|
|
2016-07-31 12:26:11 +00:00
|
|
|
from django.http import HttpResponse
|
2016-06-23 04:19:16 +00:00
|
|
|
from django.utils.translation import ugettext as _
|
|
|
|
|
2016-07-31 12:26:11 +00:00
|
|
|
from utils.shortcuts import redirect_to_login
|
|
|
|
from .models import AdminType
|
2015-11-06 12:53:52 +00:00
|
|
|
|
|
|
|
|
|
|
|
class SessionSecurityMiddleware(object):
|
|
|
|
def process_request(self, request):
|
2016-06-23 04:19:16 +00:00
|
|
|
if request.user.is_authenticated() and request.user.admin_type in [AdminType.ADMIN, AdminType.SUPER_ADMIN]:
|
2015-11-06 12:53:52 +00:00
|
|
|
if "last_activity" in request.session:
|
2016-07-31 12:26:11 +00:00
|
|
|
# 24 hours passed since last visit
|
2015-11-06 12:53:52 +00:00
|
|
|
if time.time() - request.session["last_activity"] >= 24 * 60 * 60:
|
|
|
|
auth.logout(request)
|
|
|
|
if request.is_ajax():
|
2016-06-23 04:19:16 +00:00
|
|
|
return HttpResponse(json.dumps({"code": 1, "data": _("Please login in first")}),
|
2015-11-06 12:53:52 +00:00
|
|
|
content_type="application/json")
|
|
|
|
else:
|
2016-07-31 12:26:11 +00:00
|
|
|
return redirect_to_login(request)
|
2015-11-06 12:53:52 +00:00
|
|
|
# 更新最后活动日期
|
|
|
|
request.session["last_activity"] = time.time()
|