Fix: Identities Group Management - bessere Fehlermeldungen

- add_user_to_group: Exception werfen mit stderr Nachricht
- remove_user_from_group: Exception werfen mit stderr Nachricht
- text=True für subprocess für besseres Error Handling
- Router aktualisiert um Fehlermeldungen an Frontend weiterzugeben
- Benutzer sehen jetzt detaillierte Fehlermeldungen beim Gruppe-Entfernen

Behebt: 'Failed to remove user from group' verschluckt die echte Fehlermeldung

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-04-22 12:52:53 +02:00
parent 2fc68a7cab
commit f55a5f34a7
8 changed files with 506 additions and 41 deletions
+4 -8
View File
@@ -229,12 +229,10 @@ async def add_user_to_group(
):
"""Add user to group"""
try:
success = identities_manager.add_user_to_group(username, request.groupname)
if not success:
raise HTTPException(status_code=400, detail="Failed to add user to group")
identities_manager.add_user_to_group(username, request.groupname)
return {"status": "added", "username": username, "groupname": request.groupname}
except Exception as e:
raise HTTPException(status_code=500, detail=str(e))
raise HTTPException(status_code=400, detail=str(e))
@router.delete("/users/{username}/groups/{groupname}")
@@ -245,12 +243,10 @@ async def remove_user_from_group(
):
"""Remove user from group"""
try:
success = identities_manager.remove_user_from_group(username, groupname)
if not success:
raise HTTPException(status_code=400, detail="Failed to remove user from group")
identities_manager.remove_user_from_group(username, groupname)
return {"status": "removed", "username": username, "groupname": groupname}
except Exception as e:
raise HTTPException(status_code=500, detail=str(e))
raise HTTPException(status_code=400, detail=str(e))
# ============== SAMBA USERS ==============
+23
View File
@@ -78,6 +78,29 @@ async def create_samba_share(
raise HTTPException(status_code=500, detail=str(e))
@router.put("/samba/{name}")
async def update_samba_share(
name: str,
request: CreateSambaShareRequest,
current_user: str = Depends(get_current_user)
):
"""Update Samba share"""
if not request.name.strip() or not request.path.strip():
raise HTTPException(status_code=400, detail="Name and path are required")
try:
success = share_manager.update_samba_share(
name,
request.name,
request.path,
request.comment
)
if not success:
raise HTTPException(status_code=404, detail=f"Samba share '{name}' not found")
return {"status": "updated", "name": request.name}
except Exception as e:
raise HTTPException(status_code=500, detail=str(e))
@router.delete("/samba/{name}")
async def delete_samba_share(
name: str,