|
@@ -17,18 +17,29 @@ fn parse_restrictions<'s, I>(restrictions: I, country: &str, catalogue: &str) ->
|
|
where I: IntoIterator<Item = &'s protocol::metadata::Restriction>
|
|
where I: IntoIterator<Item = &'s protocol::metadata::Restriction>
|
|
{
|
|
{
|
|
let mut forbidden = "".to_string();
|
|
let mut forbidden = "".to_string();
|
|
|
|
+ let mut has_forbidden = false;
|
|
|
|
+
|
|
let mut allowed = "".to_string();
|
|
let mut allowed = "".to_string();
|
|
|
|
+ let mut has_allowed = false;
|
|
|
|
+
|
|
let rs = restrictions.into_iter().filter(|r|
|
|
let rs = restrictions.into_iter().filter(|r|
|
|
r.get_catalogue_str().contains(&catalogue.to_owned())
|
|
r.get_catalogue_str().contains(&catalogue.to_owned())
|
|
);
|
|
);
|
|
|
|
|
|
for r in rs {
|
|
for r in rs {
|
|
- forbidden.push_str(r.get_countries_forbidden());
|
|
|
|
- allowed.push_str(r.get_countries_allowed());
|
|
|
|
|
|
+ if r.has_countries_forbidden() {
|
|
|
|
+ forbidden.push_str(r.get_countries_forbidden());
|
|
|
|
+ has_forbidden = true;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if r.has_countries_allowed() {
|
|
|
|
+ allowed.push_str(r.get_countries_allowed());
|
|
|
|
+ has_allowed = true;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
- (forbidden == "" || !countrylist_contains(forbidden.as_str(), country)) &&
|
|
|
|
- (allowed == "" || countrylist_contains(allowed.as_str(), country))
|
|
|
|
|
|
+ (!has_forbidden || !countrylist_contains(forbidden.as_str(), country)) &&
|
|
|
|
+ (!has_allowed || countrylist_contains(allowed.as_str(), country))
|
|
}
|
|
}
|
|
|
|
|
|
pub trait MetadataTrait : Send + 'static {
|
|
pub trait MetadataTrait : Send + 'static {
|