MCPcopy Create free account
hub / github.com/NodeDB-Lab/nodedb / load_from

Method load_from

nodedb/src/control/security/role.rs:53–75  ·  view source on GitHub ↗
(&self, catalog: &SystemCatalog)

Source from the content-addressed store, hash-verified

51 }
52
53 pub fn load_from(&self, catalog: &SystemCatalog) -> crate::Result<()> {
54 let stored = catalog.load_all_roles()?;
55 let mut roles = self.roles.write().map_err(|e| crate::Error::Internal {
56 detail: format!("role store lock poisoned: {e}"),
57 })?;
58 for s in stored {
59 let role = CustomRole {
60 name: s.name.clone(),
61 tenant_id: TenantId::new(s.tenant_id),
62 parent: if s.parent.is_empty() {
63 None
64 } else {
65 Some(s.parent)
66 },
67 created_at: s.created_at,
68 };
69 roles.insert(role.name.clone(), role);
70 }
71 if !roles.is_empty() {
72 tracing::info!(count = roles.len(), "loaded custom roles from catalog");
73 }
74 Ok(())
75 }
76
77 /// Clear the in-memory role map and re-run `load_from`.
78 /// Used by the catalog recovery sanity checker to repair

Callers 3

clear_and_reloadMethod · 0.45
openMethod · 0.45
repair_permissionsFunction · 0.45

Calls 5

load_all_rolesMethod · 0.80
writeMethod · 0.45
cloneMethod · 0.45
is_emptyMethod · 0.45
insertMethod · 0.45

Tested by

no test coverage detected