From 0832037d3e794aec037e306c3169b4bfc69e656b Mon Sep 17 00:00:00 2001 From: Aevann Date: Fri, 24 Feb 2023 21:41:25 +0200 Subject: [PATCH] make it possible to kick niggas from ping groups --- files/assets/js/group_members_owner.js | 1 + files/routes/groups.py | 26 +++++++++++++++++--------- files/templates/group_memberships.html | 9 +++++++++ 3 files changed, 27 insertions(+), 9 deletions(-) diff --git a/files/assets/js/group_members_owner.js b/files/assets/js/group_members_owner.js index 963df9378..a34115272 100644 --- a/files/assets/js/group_members_owner.js +++ b/files/assets/js/group_members_owner.js @@ -3,6 +3,7 @@ function approve_membership(t, url) { { }, () => { + t.parentElement.nextElementSibling.classList.remove('d-none'); t.parentElement.innerHTML = formatDate(new Date()); } ); diff --git a/files/routes/groups.py b/files/routes/groups.py index a9173b889..050a5397c 100644 --- a/files/routes/groups.py +++ b/files/routes/groups.py @@ -113,7 +113,7 @@ def group_approve(v:User, group_name, user_id): g.db.add(application) send_repeatable_notification(application.user_id, f"@{v.username} (!{group}'s owner) has approved your application!") - return {"message": f'@{application.user.username} has been approved successfully!'} + return {"message": f'You have approved @{application.user.username} successfully!'} @app.post("/!//reject") @limiter.limit(DEFAULT_RATELIMIT, key_func=get_ID) @@ -123,13 +123,21 @@ def group_reject(v:User, group_name, user_id): if not group: abort(404) if v.id != group.owner.id: - abort(403, f"Only the group owner (@{group.owner.username}) can reject applications!") - - application = g.db.query(GroupMembership).filter_by(user_id=user_id, group_name=group.name).one_or_none() - if not application: - abort(404, "There is no application to reject!") + abort(403, f"Only the group owner (@{group.owner.username}) can reject memberships!") - g.db.delete(application) - send_repeatable_notification(application.user_id, f"@{v.username} (!{group}'s owner) has rejected your application!") + membership = g.db.query(GroupMembership).filter_by(user_id=user_id, group_name=group.name).one_or_none() + if not membership: + abort(404, "There is no membership to reject!") - return {"message": f'@{application.user.username} has been rejected successfully!'} + if membership.approved_utc: + text = f"@{v.username} (!{group}'s owner) has kicked you from !{group}" + msg = f"You have kicked @{membership.user.username} successfully!" + else: + text = f"@{v.username} (!{group}'s owner) has rejected your application!" + msg = f"You have rejected @{membership.user.username} successfully!" + + g.db.delete(membership) + + send_repeatable_notification(membership.user_id, text) + + return {"message": msg} diff --git a/files/templates/group_memberships.html b/files/templates/group_memberships.html index 4d0382271..52ef5cb55 100644 --- a/files/templates/group_memberships.html +++ b/files/templates/group_memberships.html @@ -7,6 +7,9 @@ Name Joined on + {% if v.id == group.owner.id %} + + {% endif %} @@ -26,6 +29,12 @@ {% endif %} + + {% if v.id == group.owner.id %} + + + + {% endif %} {% endfor %}