readme_quick_start_test/
readme_quick_start_test.rs1use nacm_validator::{AccessRequest, NacmConfig, Operation, RequestContext};
2
3fn main() -> Result<(), Box<dyn std::error::Error>> {
4 let xml_content = std::fs::read_to_string("examples/data/tailf_acm_example.xml")?;
5 let config = NacmConfig::from_xml(&xml_content)?;
6 let context = RequestContext::CLI;
7
8 let request = AccessRequest {
9 user: "alice",
10 operation: Operation::Read,
11 context: Some(&context),
12 command: Some("show status"),
13 module_name: None,
14 rpc_name: None,
15 path: None,
16 };
17
18 let result = config.validate(&request);
19 println!("Access {}: {}",
20 if result.effect == nacm_validator::RuleEffect::Permit { "GRANTED" } else { "DENIED" },
21 if result.should_log { "[LOGGED]" } else { "" });
22
23 Ok(())
24}