MCPcopy
hub / github.com/netbirdio/netbird / DeleteUser

Method DeleteUser

management/server/idp/keycloak.go:319–356  ·  view source on GitHub ↗

DeleteUser from Keycloak by user ID.

(ctx context.Context, userID string)

Source from the content-addressed store, hash-verified

317
318// DeleteUser from Keycloak by user ID.
319func (km *KeycloakManager) DeleteUser(ctx context.Context, userID string) error {
320 jwtToken, err := km.credentials.Authenticate(ctx)
321 if err != nil {
322 return err
323 }
324
325 reqURL := fmt.Sprintf("%s/users/%s", km.adminEndpoint, url.QueryEscape(userID))
326 req, err := http.NewRequest(http.MethodDelete, reqURL, nil)
327 if err != nil {
328 return err
329 }
330 req.Header.Add("authorization", "Bearer "+jwtToken.AccessToken)
331 req.Header.Add("content-type", "application/json")
332
333 if km.appMetrics != nil {
334 km.appMetrics.IDPMetrics().CountDeleteUser()
335 }
336
337 resp, err := km.httpClient.Do(req)
338 if err != nil {
339 if km.appMetrics != nil {
340 km.appMetrics.IDPMetrics().CountRequestError()
341 }
342 return err
343 }
344 defer resp.Body.Close() // nolint
345
346 // In the docs, they specified 200, but in the endpoints, they return 204
347 if resp.StatusCode != http.StatusOK && resp.StatusCode != http.StatusNoContent {
348 if km.appMetrics != nil {
349 km.appMetrics.IDPMetrics().CountRequestStatusError()
350 }
351
352 return fmt.Errorf("unable to delete user, statusCode %d", resp.StatusCode)
353 }
354
355 return nil
356}
357
358func (km *KeycloakManager) fetchAllUserProfiles(ctx context.Context) ([]keycloakProfile, error) {
359 totalUsers, err := km.totalUsersCount(ctx)

Callers

nothing calls this directly

Calls 10

NewRequestMethod · 0.80
CountDeleteUserMethod · 0.80
CountRequestErrorMethod · 0.80
ErrorfMethod · 0.80
AuthenticateMethod · 0.65
AddMethod · 0.65
IDPMetricsMethod · 0.65
DoMethod · 0.65
CloseMethod · 0.65

Tested by

no test coverage detected