Make suspended accounts look like deleted

This commit is contained in:
2025-11-18 18:57:10 +03:00
Unverified
parent fd5cc7457c
commit d75baedf36
3 changed files with 27 additions and 10 deletions
+1 -1
View File
@@ -53,7 +53,7 @@ def convert_user(user: User) -> dict:
"verified": user.verified,
"suspended": user.suspended or False,
"suspension_reason": user.suspension_reason,
"deleted": user.deleted or False
"deleted": (user.deleted or user.suspended) or False # Treat suspended as deleted
}
@router.get("/check_auth")
+4 -4
View File
@@ -164,8 +164,8 @@ def convert_message(msg: Message) -> dict:
"username": reaction.user.display_name
})
# Handle deleted users
if msg.author.deleted:
# Handle deleted or suspended users
if msg.author.deleted or msg.author.suspended:
username = f"Deleted User #{msg.author.id}"
profile_picture = None
verified = False
@@ -222,8 +222,8 @@ def convert_dm_envelope(envelope: DMEnvelope) -> dict:
db = next(get_db())
sender = db.query(User).filter(User.id == envelope.sender_id).first()
# Handle deleted users
if sender and sender.deleted:
# Handle deleted or suspended users
if sender and (sender.deleted or sender.suspended):
sender_verified = False
else:
sender_verified = sender.verified if sender else False
+22 -5
View File
@@ -131,7 +131,7 @@ async def get_user_profile(
verified=current_user.verified,
suspended=current_user.suspended or False,
suspension_reason=current_user.suspension_reason,
deleted=current_user.deleted or False,
deleted=(current_user.deleted or current_user.suspended) or False, # Treat suspended as deleted
)
@@ -160,7 +160,7 @@ async def list_users(
verified=user.verified,
suspended=user.suspended or False,
suspension_reason=user.suspension_reason,
deleted=user.deleted or False,
deleted=(user.deleted or user.suspended) or False, # Treat suspended as deleted
).model_dump()
for user in users
]
@@ -282,6 +282,23 @@ async def get_user_by_username(
_ensure_owner_unsuspended(user, db)
# Handle deleted or suspended users
if user.deleted or user.suspended:
return UserProfileResponse(
id=user.id,
username="deleted",
display_name="Deleted User",
profile_picture=None,
bio=None,
online=False,
last_seen=None, # Clear last seen timestamp
created_at=None, # Clear member since timestamp
verified=False,
suspended=False,
suspension_reason=None,
deleted=True
)
return UserProfileResponse(
id=user.id,
username=user.username,
@@ -294,7 +311,7 @@ async def get_user_by_username(
verified=user.verified,
suspended=user.suspended or False,
suspension_reason=user.suspension_reason,
deleted=user.deleted or False,
deleted=(user.deleted or user.suspended) or False, # Treat suspended as deleted
)
@router.get("/user/id/{user_id}")
@@ -312,8 +329,8 @@ async def get_user_by_id(
_ensure_owner_unsuspended(user, db)
# Handle deleted users
if user.deleted:
# Handle deleted or suspended users
if user.deleted or user.suspended:
return UserProfileResponse(
id=user.id,
username="deleted",