@Summary Delete group by name @ID delete-group-by-name @Security CoderSessionToken @Produce json @Tags Enterprise @Param group path string true "Group name" @Success 200 {object} codersdk.Group @Router /api/v2/groups/{group} [delete]
(rw http.ResponseWriter, r *http.Request)
| 334 | // @Success 200 {object} codersdk.Group |
| 335 | // @Router /api/v2/groups/{group} [delete] |
| 336 | func (api *API) deleteGroup(rw http.ResponseWriter, r *http.Request) { |
| 337 | var ( |
| 338 | ctx = r.Context() |
| 339 | group = httpmw.GroupParam(r) |
| 340 | auditor = api.AGPL.Auditor.Load() |
| 341 | aReq, commitAudit = audit.InitRequest[database.AuditableGroup](rw, &audit.RequestParams{ |
| 342 | Audit: *auditor, |
| 343 | Log: api.Logger, |
| 344 | Request: r, |
| 345 | Action: database.AuditActionDelete, |
| 346 | OrganizationID: group.OrganizationID, |
| 347 | }) |
| 348 | ) |
| 349 | defer commitAudit() |
| 350 | |
| 351 | if group.Name == database.EveryoneGroup { |
| 352 | httpapi.Write(ctx, rw, http.StatusBadRequest, codersdk.Response{ |
| 353 | Message: fmt.Sprintf("%q is a reserved group and cannot be deleted!", database.EveryoneGroup), |
| 354 | }) |
| 355 | return |
| 356 | } |
| 357 | |
| 358 | groupMembers, getMembersErr := api.Database.GetGroupMembersByGroupID(ctx, database.GetGroupMembersByGroupIDParams{ |
| 359 | GroupID: group.ID, |
| 360 | IncludeSystem: false, |
| 361 | }) |
| 362 | if getMembersErr != nil { |
| 363 | httpapi.InternalServerError(rw, getMembersErr) |
| 364 | return |
| 365 | } |
| 366 | |
| 367 | aReq.Old = group.Auditable(groupMembers) |
| 368 | |
| 369 | err := api.Database.DeleteGroupByID(ctx, group.ID) |
| 370 | if err != nil { |
| 371 | httpapi.InternalServerError(rw, err) |
| 372 | return |
| 373 | } |
| 374 | |
| 375 | httpapi.Write(ctx, rw, http.StatusOK, codersdk.Response{ |
| 376 | Message: "Successfully deleted group!", |
| 377 | }) |
| 378 | } |
| 379 | |
| 380 | // @Summary Get group by organization and group name |
| 381 | // @ID get-group-by-organization-and-group-name |
no test coverage detected