diff --git a/app/db/crud.py b/app/db/crud.py index 190e163..30a6f71 100644 --- a/app/db/crud.py +++ b/app/db/crud.py @@ -322,9 +322,12 @@ def update_user(db: Session, dbuser: User, modify: UserModify): dbuser.status = modify.status if modify.data_limit is not None: - dbuser.data_limit = modify.data_limit or None - if dbuser.status not in (UserStatus.expired, UserStatus.disabled): + # in case there is modification to a user's data limit + dbuser.data_limit = modify.data_limit or None # set it to the new limit + if dbuser.status is not UserStatus.expired: + # in case the user isn't already disabled/expired if not dbuser.data_limit or dbuser.used_traffic < dbuser.data_limit: + # in case the user is unlimited or hasn't reached the limit already if dbuser.status != UserStatus.on_hold: dbuser.status = UserStatus.active @@ -336,6 +339,7 @@ def update_user(db: Session, dbuser: User, modify: UserModify): db, dbuser.id, ReminderType.data_usage ) else: + # the user has reached the new data limit dbuser.status = UserStatus.limited if modify.expire is not None: @@ -420,7 +424,6 @@ def reset_all_users_data_usage(db: Session, admin: Optional[Admin] = None): if dbuser.status not in [ UserStatus.on_hold, UserStatus.expired, - UserStatus.disabled, ]: dbuser.status = UserStatus.active dbuser.usage_logs.clear()