Skip to content

group

Definition of /auth/group/ routes

delete_single_group(group_id, user=Depends(current_superuser_act), db=Depends(get_async_db)) async

Delete a user group.

If FRACTAL_DEFAULT_GROUP_NAME="All", a group named "All" cannot be deleted. If FRACTAL_DEFAULT_GROUP_NAME=None, any group can be deleted.

Source code in fractal_server/app/routes/auth/group.py
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
@router_group.delete("/group/{group_id}/", status_code=204)
async def delete_single_group(
    group_id: int,
    user: UserOAuth = Depends(current_superuser_act),
    db: AsyncSession = Depends(get_async_db),
) -> Response:
    """
    Delete a user group.

    If `FRACTAL_DEFAULT_GROUP_NAME="All"`, a group named `"All"` cannot be
    deleted. If `FRACTAL_DEFAULT_GROUP_NAME=None`, any group can be deleted.
    """
    settings = Inject(get_settings)
    group = await _usergroup_or_404(group_id, db)

    if group.name == settings.FRACTAL_DEFAULT_GROUP_NAME:
        raise HTTPException(
            status_code=status.HTTP_422_UNPROCESSABLE_CONTENT,
            detail=(
                "Cannot delete default UserGroup "
                f"'{settings.FRACTAL_DEFAULT_GROUP_NAME}'."
            ),
        )

    await db.delete(group)
    await db.commit()

    return Response(status_code=status.HTTP_204_NO_CONTENT)