MCPcopy Index your code
hub / github.com/authorizerdev/authorizer / DeleteUser

Method DeleteUser

internal/service/admin_users.go:312–390  ·  view source on GitHub ↗

DeleteUser deletes a user (and associated OTP/verification data) by email. Requires super-admin auth. Logic migrated from internal/graphql/delete_user.go.

(ctx context.Context, meta RequestMetadata, params *model.DeleteUserRequest)

Source from the content-addressed store, hash-verified

310// DeleteUser deletes a user (and associated OTP/verification data) by email.
311// Requires super-admin auth. Logic migrated from internal/graphql/delete_user.go.
312func (p *provider) DeleteUser(ctx context.Context, meta RequestMetadata, params *model.DeleteUserRequest) (*model.Response, *ResponseSideEffects, error) {
313 log := p.Log.With().Str("func", "DeleteUser").Logger()
314 if err := p.requireSuperAdmin(ctx, meta); err != nil {
315 return nil, nil, err
316 }
317
318 log = log.With().Str("email", params.Email).Logger()
319 user, err := p.StorageProvider.GetUserByEmail(ctx, params.Email)
320 if err != nil {
321 log.Debug().Err(err).Msg("Failed to get user by email")
322 return nil, nil, err
323 }
324
325 err = p.StorageProvider.DeleteUser(ctx, user)
326 if err != nil {
327 log.Debug().Err(err).Msg("Failed to delete user")
328 return nil, nil, err
329 }
330
331 res := &model.Response{
332 Message: `user deleted successfully`,
333 }
334
335 go func() {
336 // delete otp for given email
337 otp, err := p.StorageProvider.GetOTPByEmail(ctx, refs.StringValue(user.Email))
338 if err != nil {
339 log.Debug().Err(err).Msg("No OTP found for email")
340 // continue
341 } else {
342 err := p.StorageProvider.DeleteOTP(ctx, otp)
343 if err != nil {
344 log.Debug().Err(err).Msg("Failed to delete otp for given email")
345 // continue
346 }
347 }
348
349 // delete otp for given phone number
350 otp, err = p.StorageProvider.GetOTPByPhoneNumber(ctx, refs.StringValue(user.PhoneNumber))
351 if err != nil {
352 log.Debug().Err(err).Msg("No OTP found for phone number")
353 // continue
354 } else {
355 err := p.StorageProvider.DeleteOTP(ctx, otp)
356 if err != nil {
357 log.Debug().Err(err).Msg("Failed to delete otp for given phone number")
358 // continue
359 }
360 }
361
362 // delete verification requests for given email
363 for _, vt := range constants.VerificationTypes {
364 verificationRequest, err := p.StorageProvider.GetVerificationRequestByEmail(ctx, refs.StringValue(user.Email), vt)
365 if err != nil {
366 log.Debug().Err(err).Msg("No verification request found for email")
367 // continue
368 } else {
369 err := p.StorageProvider.DeleteVerificationRequest(ctx, verificationRequest)

Callers

nothing calls this directly

Calls 12

requireSuperAdminMethod · 0.95
StringValueFunction · 0.92
GetUserByEmailMethod · 0.65
DeleteUserMethod · 0.65
GetOTPByEmailMethod · 0.65
DeleteOTPMethod · 0.65
GetOTPByPhoneNumberMethod · 0.65
DeleteAllUserSessionsMethod · 0.65
RegisterEventMethod · 0.65
LogEventMethod · 0.65

Tested by

no test coverage detected