def handle(self, email=True, verbosity=1, **kwargs):
self.verbosity = verbosity
UserModel = get_user_model()
exp = ExpirySettings.get()
oldest = exp.earliest_possible_login
if oldest is None:
self._info("Account expiry not configured; nothing to do.")
return
self._info("Checking for users who haven't logged in since %s" % oldest)
gone = UserModel.objects.filter(is_active=True, last_login__lt=oldest)
for username in gone.values_list(UserModel.USERNAME_FIELD, flat=True):
self._info("Deactiviting user: %s" % username)
messages = list(filter(None, (self._make_email(exp, user) for user in gone)))
count = gone.update(is_active=False)
if count:
self._info("%d account(s) expired" % count)
if email and messages:
self._info("Sending e-mails")
connection = mail.get_connection()
connection.send_messages(messages)
self._info("Done")
评论列表
文章目录