lib

Core libraries for Radroots
git clone https://radroots.dev/git/lib.git
Log | Files | Refs | README | LICENSE

commit 1e9d1919801b3c244bda27aeacec02c889fadd93
parent 0ec91ea75c7881d4d0f624ea1b1bc89b2894b1a3
Author: triesap <tyson@radroots.org>
Date:   Sun, 14 Jun 2026 20:43:05 -0700

authority: protect actor resolution requests

Diffstat:
Mcrates/authority/src/actor.rs | 37+++++++++++++++++++++++++++----------
1 file changed, 27 insertions(+), 10 deletions(-)

diff --git a/crates/authority/src/actor.rs b/crates/authority/src/actor.rs @@ -117,9 +117,9 @@ impl RadrootsActorSelector { #[derive(Clone, Debug, PartialEq, Eq)] pub struct RadrootsActorResolutionRequest { - pub selector: RadrootsActorSelector, - pub required_role: RadrootsActorRole, - pub contract_id: Option<String>, + selector: RadrootsActorSelector, + required_role: RadrootsActorRole, + contract_id: Option<String>, } impl RadrootsActorResolutionRequest { @@ -134,6 +134,18 @@ impl RadrootsActorResolutionRequest { contract_id, } } + + pub fn selector(&self) -> &RadrootsActorSelector { + &self.selector + } + + pub fn required_role(&self) -> RadrootsActorRole { + self.required_role + } + + pub fn contract_id(&self) -> Option<&str> { + self.contract_id.as_deref() + } } #[derive(Clone, Debug, PartialEq, Eq)] @@ -403,7 +415,7 @@ mod tests { } #[test] - fn selector_supports_account_and_draft_resolution() { + fn resolution_request_getters_return_constructor_values() { let selector = RadrootsActorSelector::account_id("acct-field-01").expect("selector"); let request = RadrootsActorResolutionRequest::new( selector, @@ -412,14 +424,19 @@ mod tests { ); assert!(matches!( - request.selector, + request.selector(), + RadrootsActorSelector::AccountId(account_id) if account_id.as_str() == "acct-field-01" + )); + assert_eq!(request.required_role(), RadrootsActorRole::Seller); + assert_eq!(request.contract_id(), Some("radroots.listing.published.v1")); + } + + #[test] + fn selector_supports_account_and_draft_resolution() { + assert!(matches!( + RadrootsActorSelector::account_id("acct-field-01").expect("selector"), RadrootsActorSelector::AccountId(ref account_id) if account_id.as_str() == "acct-field-01" )); - assert_eq!(request.required_role, RadrootsActorRole::Seller); - assert_eq!( - request.contract_id.as_deref(), - Some("radroots.listing.published.v1") - ); assert!(matches!( RadrootsActorSelector::SelectedAccount, RadrootsActorSelector::SelectedAccount