ldap-acis 0.2.1

LDAP Access Control Instructions (ACI) system built on acls-rs
Documentation
//! LDAP Access Control Instructions (ACI) system.
//!
//! This crate implements LDAP-style Access Control Instructions built on top of
//! the algebraically-correct `acls-rs` permission system.
//!
//! # LDAP ACI Overview
//!
//! LDAP ACIs control access to directory entries and attributes. They consist of:
//!
//! - **Target**: What entries/attributes the ACI applies to (DN patterns, filters)
//! - **Permissions**: What operations are allowed (read, write, search, compare, add, delete)
//! - **Bind Rules**: Who the ACI applies to (user DNs, groups, IP addresses)

pub mod aci;
pub mod cache;
pub mod dn;
pub(crate) mod dn_index;
pub mod entry;
pub mod generator;
pub mod operation;
pub(crate) mod optimized;
pub mod parser;
pub mod transformer;

pub use aci::{
    Aci, AciBuilder, AciPolicy, AttributeSet, AuthorizationResult, BindRule, CompOp, DnScope,
    Scope, TargetAttrFilter, TargetAttrFilterOp, TargetFilter,
};
pub use cache::CachedAciPolicy;
pub use entry::{LdapAttribute, LdapEntry};
pub use operation::{LdapOperation, LdapPermission, OperationSet, OperationType, PermissionSlice};

pub mod prelude {
    pub use crate::aci::{
        Aci, AciBuilder, AciPolicy, AttributeSet, AuthorizationResult, BindRule, CompOp, DnScope,
        Scope, TargetAttrFilter, TargetAttrFilterOp, TargetFilter,
    };
    pub use crate::cache::CachedAciPolicy;
    pub use crate::entry::{LdapAttribute, LdapEntry};
    pub use crate::generator::{
        generate, AciGenerator, Ds389 as Ds389Gen, GenerateError, OpenLdap as OpenLdapGen,
    };
    pub use crate::operation::{
        LdapOperation, LdapPermission, OperationSet, OperationType, PermissionSlice,
    };
    pub use crate::parser::{parse, AciFormat, Ds389, OpenLdap, ParseError};
    pub use crate::transformer::{transform, TransformBuilder, TransformError};
    pub use acls_rs::prelude::*;
}