verifyos_cli/rules/
permissions.rs1use crate::rules::core::{AppStoreRule, ArtifactContext, RuleError, RuleResult, Severity};
2
3pub struct CameraUsageDescriptionRule;
4
5impl AppStoreRule for CameraUsageDescriptionRule {
6 fn id(&self) -> &'static str {
7 "RULE_CAMERA_USAGE"
8 }
9
10 fn name(&self) -> &'static str {
11 "Missing Camera Usage Description"
12 }
13
14 fn severity(&self) -> Severity {
15 Severity::Error
16 }
17
18 fn evaluate(&self, artifact: &ArtifactContext) -> Result<RuleResult, RuleError> {
19 if let Some(plist) = artifact.info_plist {
20 if !plist.has_key("NSCameraUsageDescription") {
21 return Err(RuleError::MissingCameraUsageDescription);
22 }
23 }
24
25 Ok(RuleResult { success: true })
26 }
27}