mirror of
https://github.com/QingdaoU/OnlineJudge.git
synced 2025-11-04 14:49:58 +08:00
22 lines
813 B
Python
22 lines
813 B
Python
from django.utils.timezone import now
|
|
from django.dispatch import receiver
|
|
from django.contrib.auth.signals import user_logged_in, user_logged_out
|
|
|
|
|
|
@receiver(user_logged_in)
|
|
def add_user_session(sender, request, user, **kwargs):
|
|
request.session["ip"] = request.META.get('REMOTE_ADDR', '')
|
|
request.session["user_agent"] = request.META.get('HTTP_USER_AGENT', '')
|
|
request.session["last_login"] = now()
|
|
if request.session.session_key not in user.session_keys:
|
|
user.session_keys.append(request.session.session_key)
|
|
user.save()
|
|
|
|
|
|
@receiver(user_logged_out)
|
|
def delete_user_session(sender, request, user, **kwargs):
|
|
# user may be None
|
|
if user and request.session.session_key in user.session_keys:
|
|
user.session_keys.remove(request.session.session_key)
|
|
user.save()
|