pub struct NacmCommandRule {
pub name: String,
pub context: Option<String>,
pub command: Option<String>,
pub access_operations: HashSet<Operation>,
pub effect: RuleEffect,
pub order: u32,
pub log_if_permit: bool,
pub log_if_deny: bool,
pub comment: Option<String>,
}Expand description
NACM Command Rule structure (Tail-f ACM extension)
Represents a command-based access control rule for CLI and Web UI operations. Command rules complement standard NACM data access rules by controlling access to management commands that don’t map to NETCONF operations.
§Fields
name- Human-readable identifier for the command rulecontext- Management interface pattern (e.g., “cli”, “webui”, “*”)command- Command pattern to match (supports wildcards)access_operations- Set of command operations (read, exec)effect- Whether to permit or deny matching command requestsorder- Rule precedence within the rule listlog_if_permit- Log when this rule permits accesslog_if_deny- Log when this rule denies accesscomment- Optional description of the rule
§Examples
use nacm_validator::{NacmCommandRule, RuleEffect, Operation};
use std::collections::HashSet;
let mut ops = HashSet::new();
ops.insert(Operation::Read);
ops.insert(Operation::Exec);
let cmd_rule = NacmCommandRule {
name: "cli-show-status".to_string(),
context: Some("cli".to_string()),
command: Some("show status".to_string()),
access_operations: ops,
effect: RuleEffect::Permit,
order: 10,
log_if_permit: true,
log_if_deny: false,
comment: Some("Allow operators to view system status".to_string()),
};Fields§
§name: StringUnique name for this command rule
context: Option<String>Management interface pattern (e.g., “cli”, “webui”, “*”)
command: Option<String>Command pattern to match (supports wildcards)
access_operations: HashSet<Operation>Set of command operations covered by this rule
effect: RuleEffectWhether this rule permits or denies access
order: u32Rule precedence within the rule list
log_if_permit: boolLog when this rule permits access
log_if_deny: boolLog when this rule denies access
comment: Option<String>Optional description of the rule
Trait Implementations§
Source§impl Clone for NacmCommandRule
impl Clone for NacmCommandRule
Source§fn clone(&self) -> NacmCommandRule
fn clone(&self) -> NacmCommandRule
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for NacmCommandRule
impl RefUnwindSafe for NacmCommandRule
impl Send for NacmCommandRule
impl Sync for NacmCommandRule
impl Unpin for NacmCommandRule
impl UnwindSafe for NacmCommandRule
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more