MCPcopy Create free account
hub / github.com/GraphLite-AI/GraphLite / execute

Method execute

graphlite/src/catalog/providers/security.rs:593–819  ·  view source on GitHub ↗
(&mut self, op: CatalogOperation)

Source from the content-addressed store, hash-verified

591 }
592
593 fn execute(&mut self, op: CatalogOperation) -> CatalogResult<CatalogResponse> {
594 match op {
595 CatalogOperation::Create {
596 entity_type,
597 name,
598 params,
599 } => match entity_type {
600 EntityType::User => {
601 let user = User::from_params(name.clone(), &params);
602 self.add_user(user)?;
603 Ok(CatalogResponse::Success {
604 data: Some(json!({ "message": format!("User '{}' created", name) })),
605 })
606 }
607 EntityType::Role => {
608 let role = Role::from_params(name.clone(), &params);
609 self.add_role(role)?;
610 Ok(CatalogResponse::Success {
611 data: Some(json!({ "message": format!("Role '{}' created", name) })),
612 })
613 }
614 EntityType::Ace => {
615 let ace = Ace::from_params(&params)?;
616 self.add_ace(ace)?;
617 Ok(CatalogResponse::Success {
618 data: Some(json!({ "message": "Access control entry created" })),
619 })
620 }
621 _ => Ok(CatalogResponse::NotSupported),
622 },
623
624 CatalogOperation::Drop {
625 entity_type,
626 name,
627 cascade,
628 } => match entity_type {
629 EntityType::User => {
630 let removed = self.remove_user(&name)?;
631 Ok(CatalogResponse::Success {
632 data: Some(serde_json::to_value(removed)?),
633 })
634 }
635 EntityType::Role => {
636 let removed = self.remove_role(&name, cascade)?;
637 Ok(CatalogResponse::Success {
638 data: Some(serde_json::to_value(removed)?),
639 })
640 }
641 _ => Ok(CatalogResponse::NotSupported),
642 },
643
644 CatalogOperation::Query { query_type, params } => {
645 match query_type {
646 QueryType::GetUser => {
647 if let Some(name) = params.get("name").and_then(|v| v.as_str()) {
648 if let Some(user) = self.get_user(name) {
649 Ok(CatalogResponse::Query {
650 results: serde_json::to_value(user)?,

Callers 3

test_create_and_get_userFunction · 0.45
test_user_authenticationFunction · 0.45
test_create_role_and_aceFunction · 0.45

Calls 15

cloneMethod · 0.80
add_userMethod · 0.80
add_roleMethod · 0.80
add_aceMethod · 0.80
remove_userMethod · 0.80
remove_roleMethod · 0.80
get_userMethod · 0.80
get_roleMethod · 0.80
get_aces_for_resourceMethod · 0.80
verify_passwordMethod · 0.80
update_userMethod · 0.80

Tested by 3

test_create_and_get_userFunction · 0.36
test_user_authenticationFunction · 0.36
test_create_role_and_aceFunction · 0.36