fix: error when sending reports for autodelete (#1512)

This commit is contained in:
Mohammad
2024-12-14 19:00:58 +03:30
committed by GitHub
parent 8f662d417c
commit 05851bdddf
2 changed files with 9 additions and 5 deletions

View File

@@ -495,7 +495,8 @@ def update_user(db: Session, dbuser: User, modify: UserModify) -> User:
for days_left in sorted(NOTIFY_DAYS_LEFT):
if not dbuser.expire or (calculate_expiration_days(
dbuser.expire) > days_left):
reminder = get_notification_reminder(db, dbuser.id, ReminderType.expiration_date, threshold=days_left)
reminder = get_notification_reminder(
db, dbuser.id, ReminderType.expiration_date, threshold=days_left)
if reminder:
delete_notification_reminder(db, reminder)
else:
@@ -739,7 +740,7 @@ def autodelete_expired_users(db: Session,
).filter(
auto_delete >= 0, # Negative values prevent auto-deletion
User.status.in_(target_status),
)
).options(joinedload(User.admin))
# TODO: Handle time filter in query itself (NOTE: Be careful with sqlite's strange datetime handling)
expired_users = [
@@ -1072,7 +1073,7 @@ def reset_admin_usage(db: Session, dbadmin: Admin) -> int:
"""
if (dbadmin.users_usage == 0):
return dbadmin
usage_log = AdminUsageLogs(
admin=dbadmin,
used_traffic_at_reset=dbadmin.users_usage

View File

@@ -1,9 +1,10 @@
import logging
from app import logger, scheduler
from app.db import GetDB, crud
from app.jobs.utils import SYSTEM_ADMIN
from app.models.admin import Admin
from app.utils import report
from app.jobs.utils import SYSTEM_ADMIN
from config import USER_AUTODELETE_INCLUDE_LIMITED_ACCOUNTS
@@ -12,7 +13,9 @@ def remove_expired_users():
deleted_users = crud.autodelete_expired_users(db, USER_AUTODELETE_INCLUDE_LIMITED_ACCOUNTS)
for user in deleted_users:
report.user_deleted(user.username, SYSTEM_ADMIN, user_admin=Admin.model_validate(user.admin))
report.user_deleted(user.username, SYSTEM_ADMIN,
user_admin=Admin.model_validate(user.admin) if user.admin else None
)
logger.log(logging.INFO, "Expired user %s deleted." % user.username)