def invalidate():
OFFBOARD_DAYS = 31
from django.utils import timezone
from django.contrib.auth.models import User
from django.db.models import Q
from social.apps.django_app.default.models import UserSocialAuth
invalidate_delta = timezone.now() - timezone.timedelta(OFFBOARD_DAYS)
print "Running invalidate process with date: %s" % (invalidate_delta)
# has auth credentials (non-null)
criteria = Q(extra_data__isnull=False)
# also is past timeframe
criteria = criteria & (Q(user__last_login__lte=invalidate_delta) | (Q(user__last_login__isnull=True) & Q(user__date_joined__lte=invalidate_delta)))
users = UserSocialAuth.objects.filter(criteria)
for u in users:
try:
u.extra_data = None
u.save()
print "\tInvalidate user %s (last_login=%s, date_joined=%s)" % (u.user, u.user.last_login, u.user.date_joined)
except UserSocialAuth.DoesNotExist, e:
# no record exists; no need to clear anything
pass
评论列表
文章目录