Fixed admin - remove user

This commit is contained in:
Olaf
2026-08-25 21:05:17 +02:00
parent 38908b9a25
commit 442a28e741
4 changed files with 73 additions and 16 deletions
+7 -1
View File
@@ -83,8 +83,11 @@ def create_user(payload: AdminUserCreate, _: dict = Depends(require_admin)):
def update_user_privileges(
user_id: str,
payload: AdminUserUpdate,
_: dict = Depends(require_admin),
current_user: dict = Depends(require_admin),
):
if user_id == current_user['id']:
raise HTTPException(status_code=400, detail='You cannot change your own administrator status')
with get_connection() as conn:
target = conn.execute(
'SELECT id, is_admin FROM users WHERE id = ?',
@@ -126,6 +129,9 @@ def delete_user(user_id: str, current_user: dict = Depends(require_admin)):
if admins <= 1:
raise HTTPException(status_code=400, detail='Cannot delete the last administrator')
conn.execute('DELETE FROM tokens WHERE user_id = ?', (user_id,))
conn.execute('DELETE FROM user_plugin_config WHERE user_id = ?', (user_id,))
conn.execute('DELETE FROM links WHERE user_id = ?', (user_id,))
conn.execute('DELETE FROM users WHERE id = ?', (user_id,))
conn.commit()
return {'status': 'deleted', 'id': user_id}