iop_coeus_node/policy/
registration.rs1use super::*;
2
3pub trait RegistrationValidator {
4 fn validate(&self, parent_domain: &Domain, register: &DoRegister) -> Result<()>;
5}
6
7impl RegistrationValidator for RegistrationPolicy {
8 fn validate(&self, parent_domain: &Domain, register: &DoRegister) -> Result<()> {
9 match self {
10 Self::Owner => {
11 let child_owner = ®ister.owner;
12 let parent_owner = parent_domain.owner();
13 ensure!(
14 child_owner == parent_owner,
15 "Only {} can register a child of {}",
16 parent_owner,
17 parent_domain.name()
18 );
19 }
20 Self::Any => {}
21 };
22 Ok(())
23 }
24}