diff --git a/src/pcd.rs b/src/pcd.rs index babeb31..2cb1cff 100644 --- a/src/pcd.rs +++ b/src/pcd.rs @@ -430,6 +430,20 @@ impl RoleDefinition { .filter(|rule| rule.fields.contains(&field.to_string())) .collect() } + + pub fn is_member_validation_needed(&self, member: Member, modified_fields: Vec) -> bool { + if !self.members.iter().any(|m| *m == member) { + return false; + } + + for field in modified_fields { + if !self.get_applicable_rules(&field).is_empty() { + return true; + } + } + + false + } } pub fn compare_maps(map1: &Map, map2: &Map) -> bool {