pub trait IdentityProvider: Send + Sync {
// Required methods
fn bindings(&self) -> Vec<IdentityBinding>;
fn add_binding(
&mut self,
provider: &str,
id: &str,
level: TrustLevel,
) -> Result<()>;
fn max_trust_level(&self) -> TrustLevel;
fn has_binding(&self, provider: &str) -> bool;
}Expand description
Trait for identity management.
Implementations manage identity storage, provider integration, and trust level computation.
§Example
use sigil_protocol::{IdentityProvider, IdentityBinding, TrustLevel};
struct LdapIdentity { /* ... */ }
impl IdentityProvider for LdapIdentity {
fn bindings(&self) -> Vec<IdentityBinding> { vec![] }
fn add_binding(&mut self, provider: &str, id: &str, level: TrustLevel) -> anyhow::Result<()> {
todo!()
}
fn max_trust_level(&self) -> TrustLevel { TrustLevel::Low }
fn has_binding(&self, provider: &str) -> bool { false }
}Required Methods§
Sourcefn bindings(&self) -> Vec<IdentityBinding>
fn bindings(&self) -> Vec<IdentityBinding>
List all identity bindings.
Sourcefn add_binding(
&mut self,
provider: &str,
id: &str,
level: TrustLevel,
) -> Result<()>
fn add_binding( &mut self, provider: &str, id: &str, level: TrustLevel, ) -> Result<()>
Add a new identity binding.
Sourcefn max_trust_level(&self) -> TrustLevel
fn max_trust_level(&self) -> TrustLevel
Compute the maximum trust level across all bindings.
Sourcefn has_binding(&self, provider: &str) -> bool
fn has_binding(&self, provider: &str) -> bool
Check if a binding exists for the given provider.