fix group deletion

master
Aevann 2024-11-09 22:28:24 +02:00
parent 899adb0f2f
commit 5523b05231
1 changed files with 18 additions and 11 deletions

View File

@ -115,6 +115,19 @@ def join_group(v, group_name):
return {"message": f"Application to !{group} submitted successfully!"}
def delete_group(membership, group, v):
g.db.delete(membership)
for blacklist in g.db.query(GroupBlacklist).filter_by(group_name=group.name):
g.db.delete(blacklist)
g.db.delete(group)
text = f':marseydisintegrate: !{group} has been deleted by @{v.username} :!marseydisintegrate:'
alert_active_users(text, None, User.group_creation_notifs == True)
return {"message": f"You have deleted !{group} successfully!"}
@app.post("/!<group_name>/leave")
@limiter.limit('1/second', scope=rpath)
@limiter.limit('1/second', scope=rpath, key_func=get_ID)
@ -149,6 +162,8 @@ def leave_group(v, group_name):
send_repeatable_notification(new_owner_id, f"@{group.owner.username} (!{group}'s owner) has left the group, You're now the new owner!")
group.owner_id = new_owner_id
g.db.add(group)
else:
return delete_group(existing, group, v)
else:
func(group.owner_id, text)
@ -276,20 +291,12 @@ def group_reject(v, group_name, user_id):
send_repeatable_notification(new_owner_id, f"@{group.owner.username} (!{group}'s owner) has been kicked from the group by site admins, You're now the new owner!")
group.owner_id = new_owner_id
g.db.add(group)
else:
return delete_group(membership, group, v)
g.db.delete(membership)
g.db.flush()
count = g.db.query(GroupMembership).filter_by(group_name=group.name).count()
if not count:
g.db.commit() #need it to fix "Dependency rule tried to blank-out primary key column 'group_memberships.group_name' on instance"
g.db.delete(group)
msg = f"You have deleted !{group} successfully!"
text = f':marseydisintegrate: !{group} has been deleted by @{v.username} :!marseydisintegrate:'
alert_active_users(text, None, User.group_creation_notifs == True)
if count and v.id != uid:
if v.id != uid:
group_blacklist = GroupBlacklist(
user_id=uid,
group_name=group.name,