MCPcopy Create free account
hub / github.com/chirpstack/chirpstack / delete_user

Method delete_user

chirpstack/src/api/tenant.rs:495–534  ·  view source on GitHub ↗
(
        &self,
        request: Request<api::DeleteTenantUserRequest>,
    )

Source from the content-addressed store, hash-verified

493 }
494
495 async fn delete_user(
496 &self,
497 request: Request<api::DeleteTenantUserRequest>,
498 ) -> Result<Response<()>, Status> {
499 let req = request.get_ref();
500 let tenant_id = Uuid::from_str(&req.tenant_id).map_err(|e| e.status())?;
501 let user_id = Uuid::from_str(&req.user_id).map_err(|e| e.status())?;
502
503 self.validator
504 .validate(
505 request.extensions(),
506 validator::ValidateTenantUserAccess::new(
507 validator::Flag::Delete,
508 tenant_id,
509 user_id,
510 ),
511 )
512 .await?;
513
514 let auth_id = request.extensions().get::<AuthID>().unwrap();
515 if let AuthID::User(id) = auth_id
516 && id == &user_id
517 {
518 return Err(Status::invalid_argument(
519 "you can not delete yourself from the user",
520 ));
521 }
522
523 tenant::delete_user(&tenant_id, &user_id)
524 .await
525 .map_err(|e| e.status())?;
526
527 let mut resp = Response::new(());
528 resp.metadata_mut()
529 .insert("x-log-tenant_id", req.tenant_id.parse().unwrap());
530 resp.metadata_mut()
531 .insert("x-log-user_id", req.user_id.parse().unwrap());
532
533 Ok(resp)
534 }
535
536 async fn list_users(
537 &self,

Callers

nothing calls this directly

Calls 5

delete_userFunction · 0.85
statusMethod · 0.80
unwrapMethod · 0.80
insertMethod · 0.80
validateMethod · 0.45

Tested by

no test coverage detected