Skip to main content

IdentityProvider

Trait IdentityProvider 

Source
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§

Source

fn bindings(&self) -> Vec<IdentityBinding>

List all identity bindings.

Source

fn add_binding( &mut self, provider: &str, id: &str, level: TrustLevel, ) -> Result<()>

Add a new identity binding.

Source

fn max_trust_level(&self) -> TrustLevel

Compute the maximum trust level across all bindings.

Source

fn has_binding(&self, provider: &str) -> bool

Check if a binding exists for the given provider.

Implementors§