use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SecurityCheckResult {
pub safe: bool,
pub warnings: Vec<String>,
}
pub async fn check_managed_settings_security() -> SecurityCheckResult {
SecurityCheckResult {
safe: true,
warnings: Vec::new(),
}
}
pub fn handle_security_check_result(result: &SecurityCheckResult) {
if !result.safe {
log::warn!(
"[remoteManagedSettings] Managed settings failed security check: {}",
result.warnings.join("; ")
);
} else if !result.warnings.is_empty() {
log::info!(
"[remoteManagedSettings] Managed settings safe with warnings: {}",
result.warnings.join("; ")
);
}
}
#[cfg(test)]
mod tests {
use super::*;
#[tokio::test]
async fn test_security_check_returns_safe() {
let result = check_managed_settings_security().await;
assert!(result.safe);
assert!(result.warnings.is_empty());
}
#[test]
fn test_handle_safe_result_no_log() {
let result = SecurityCheckResult {
safe: true,
warnings: Vec::new(),
};
handle_security_check_result(&result);
}
#[test]
fn test_handle_warnings_log_info() {
let result = SecurityCheckResult {
safe: true,
warnings: vec!["deprecated_setting".to_string()],
};
handle_security_check_result(&result);
}
}