Skip to content

Commit

Permalink
fix: report to users admin
Browse files Browse the repository at this point in the history
  • Loading branch information
SaintShit committed Feb 14, 2024
1 parent f60a487 commit ec7f8e2
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 64 deletions.
8 changes: 4 additions & 4 deletions app/jobs/review_users.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,8 @@ def review():
update_user_status(db, user, status)

bg.add_task(
report.status_change, useename=user.username, status=status,
user=UserResponse.from_orm(user), dbuser = user
report.status_change, username=user.username, status=status,
user=UserResponse.from_orm(user), user_admin=user.admin
)

logger.info(f"User \"{user.username}\" status changed to {status}")
Expand All @@ -83,8 +83,8 @@ def review():
update_user_status(db, user, status)
start_user_expire(db, user)
bg.add_task(
report.status_change, useename=user.username, status=status,
user=UserResponse.from_orm(user), dbuser = user
report.status_change, username=user.username, status=status,
user=UserResponse.from_orm(user), user_admin=user.admin
)

logger.info(f"User \"{user.username}\" status changed to {status}")
Expand Down
67 changes: 19 additions & 48 deletions app/utils/report.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,10 @@
from app import discord


def status_change(username: str, status: UserStatus, user: UserResponse, dbuser:User, by: Optional[Admin] = None) -> None:
if dbuser.admin_id:
admin = get_admin(admin_id=dbuser.admin_id)
else:
admin = None
def status_change(
username: str, status: UserStatus, user: UserResponse, user_admin: Admin = None, by: Admin = None) -> None:
try:
telegram.report_status_change(username, status, admin)
telegram.report_status_change(username, status, user_admin)
except Exception:
pass
if status == UserStatus.limited:
Expand All @@ -38,11 +35,7 @@ def status_change(username: str, status: UserStatus, user: UserResponse, dbuser:
pass


def user_created(user: UserResponse, dbuser:User, user_id: int, by: Admin) -> None:
if dbuser.admin_id:
admin = get_admin(admin_id=dbuser.admin_id)
else:
admin = None
def user_created(user: UserResponse, user_id: int, by: Admin, user_admin: Admin = None) -> None:
try:
telegram.report_new_user(
user_id=user_id,
Expand All @@ -52,7 +45,7 @@ def user_created(user: UserResponse, dbuser:User, user_id: int, by: Admin) -> No
data_limit=user.data_limit,
proxies=user.proxies,
data_limit_reset_strategy=user.data_limit_reset_strategy,
admin=admin
admin=user_admin
)
except Exception:
pass
Expand All @@ -65,17 +58,13 @@ def user_created(user: UserResponse, dbuser:User, user_id: int, by: Admin) -> No
data_limit=user.data_limit,
proxies=user.proxies,
data_limit_reset_strategy=user.data_limit_reset_strategy,
admin=admin
admin=user_admin
)
except Exception:
pass


def user_updated(user: UserResponse, dbuser:User, by: Admin) -> None:
if dbuser.admin_id:
admin = get_admin(admin_id=dbuser.admin_id)
else:
admin = None
def user_updated(user: UserResponse, by: Admin, user_admin: Admin = None) -> None:
try:
telegram.report_user_modification(
username=user.username,
Expand All @@ -84,49 +73,41 @@ def user_updated(user: UserResponse, dbuser:User, by: Admin) -> None:
proxies=user.proxies,
by=by.username,
data_limit_reset_strategy=user.data_limit_reset_strategy,
admin=admin
admin=user_admin
)
except Exception:
pass
notify(UserUpdated(username=user.username, action=Notification.Type.user_updated, by=by, user=user))
try:
try:
discord.report_user_modification(
username=user.username,
expire_date=user.expire,
data_limit=user.data_limit,
proxies=user.proxies,
by=by.username,
data_limit_reset_strategy=user.data_limit_reset_strategy,
admin=admin
admin=user_admin
)
except Exception:
pass


def user_deleted(username: str, user:User, by: Admin) -> None:
if user.admin_id:
admin = get_admin(admin_id=user.admin_id)
else:
admin = None
telegram.report_user_deletion(username=username, by=by.username, admin=admin)
def user_deleted(username: str, by: Admin, user_admin: Admin = None) -> None:
telegram.report_user_deletion(username=username, by=by.username, admin=user_admin)

notify(UserDeleted(username=username, action=Notification.Type.user_deleted, by=by))
try:
discord.report_user_deletion(username=username, by=by.username, admin=admin)
discord.report_user_deletion(username=username, by=by.username, admin=user_admin)
except Exception:
pass


def user_data_usage_reset(user: UserResponse, dbuser:User, by: Admin) -> None:
if dbuser.admin_id:
admin = get_admin(admin_id=dbuser.admin_id)
else:
admin = None
def user_data_usage_reset(user: UserResponse, by: Admin, user_admin: Admin = None) -> None:
try:
telegram.report_user_usage_reset(
username=user.username,
by=by.username,
admin=admin
admin=user_admin
)
except Exception:
pass
Expand All @@ -135,22 +116,18 @@ def user_data_usage_reset(user: UserResponse, dbuser:User, by: Admin) -> None:
discord.report_user_usage_reset(
username=user.username,
by=by.username,
admin=admin
admin=user_admin
)
except Exception:
pass


def user_subscription_revoked(user: UserResponse, dbuser:User, by: Admin) -> None:
if dbuser.admin_id:
admin = get_admin(admin_id=dbuser.admin_id)
else:
admin = None
def user_subscription_revoked(user: UserResponse, by: Admin, user_admin: Admin = None) -> None:
try:
telegram.report_user_subscription_revoked(
username=user.username,
by=by.username,
admin=admin
admin=user_admin
)
except Exception:
pass
Expand All @@ -159,7 +136,7 @@ def user_subscription_revoked(user: UserResponse, dbuser:User, by: Admin) -> Non
discord.report_user_subscription_revoked(
username=user.username,
by=by.username,
admin=admin
admin=user_admin
)
except Exception:
pass
Expand All @@ -177,9 +154,3 @@ def expire_days_reached(db: Session, days: int, user: UserResponse, user_id: int
create_notification_reminder(
db, ReminderType.expiration_date, expires_at=dt.utcfromtimestamp(expire),
user_id=user_id)


def get_admin(admin_id: int) -> Admin:
with GetDB() as db:
admin = get_admin_by_id(db=db, id=admin_id)
return admin
20 changes: 8 additions & 12 deletions app/views/user.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,9 +44,9 @@ def add_user(new_user: UserCreate,
user = UserResponse.from_orm(dbuser)
report.user_created(
user=user,
dbuser=dbuser,
user_id=dbuser.id,
by=admin
by=admin,
user_admin=dbuser.admin
)
logger.info(f"New user \"{dbuser.username}\" added")
return user
Expand Down Expand Up @@ -107,7 +107,7 @@ def modify_user(username: str,

bg.add_task(report.user_updated,
user=user,
dbuser=dbuser,
user_admin=dbuser.admin,
by=admin)
logger.info(f"User \"{user.username}\" modified")

Expand All @@ -116,7 +116,7 @@ def modify_user(username: str,
username=user.username,
status=user.status,
user=user,
dbuser=dbuser,
user_admin=dbuser.admin,
by=admin)
logger.info(
f"User \"{dbuser.username}\" status changed from {old_status} to {user.status}")
Expand All @@ -140,14 +140,15 @@ def remove_user(username: str,
if not (admin.is_sudo or (dbuser.admin and dbuser.admin.username == admin.username)):
raise HTTPException(status_code=403, detail="You're not allowed")

user_admin = dbuser.admin
crud.remove_user(db, dbuser)

bg.add_task(xray.operations.remove_user, dbuser=dbuser)

bg.add_task(
report.user_deleted,
username=dbuser.username,
user=dbuser,
user_admin=user_admin,
by=admin
)
logger.info(f"User \"{username}\" deleted")
Expand Down Expand Up @@ -176,7 +177,7 @@ def reset_user_data_usage(username: str,
user = UserResponse.from_orm(dbuser)
bg.add_task(report.user_data_usage_reset,
user=user,
dbuser=dbuser,
user_admin=dbuser.admin,
by=admin)

logger.info(f"User \"{username}\"'s usage was reset")
Expand Down Expand Up @@ -207,7 +208,7 @@ def revoke_user_subscription(username: str,
bg.add_task(
report.user_subscription_revoked,
user=user,
dbuser=dbuser,
user_admin=dbuser.admin,
by=admin
)

Expand Down Expand Up @@ -403,11 +404,6 @@ def delete_expired_users(bg: BackgroundTasks,
crud.remove_users(db, expired_users)

for removed_user in removed_users:
bg.add_task(
report.user_deleted,
username=removed_user,
by=admin
)
logger.info(f"User \"{removed_user}\" deleted")

return removed_users

0 comments on commit ec7f8e2

Please sign in to comment.