Increase max number of allowed extra fields for remote actors to 100
This commit is contained in:
parent
a14c719d25
commit
8e08195b44
2 changed files with 20 additions and 10 deletions
|
@ -409,11 +409,12 @@ impl ProfileCreateData {
|
||||||
if let Some(display_name) = &self.display_name {
|
if let Some(display_name) = &self.display_name {
|
||||||
validate_display_name(display_name)?;
|
validate_display_name(display_name)?;
|
||||||
};
|
};
|
||||||
|
let is_remote = self.actor_json.is_some();
|
||||||
if let Some(bio) = &self.bio {
|
if let Some(bio) = &self.bio {
|
||||||
let cleaned_bio = clean_bio(bio, self.actor_json.is_some())?;
|
let cleaned_bio = clean_bio(bio, is_remote)?;
|
||||||
self.bio = Some(cleaned_bio);
|
self.bio = Some(cleaned_bio);
|
||||||
};
|
};
|
||||||
self.extra_fields = clean_extra_fields(&self.extra_fields)?;
|
self.extra_fields = clean_extra_fields(&self.extra_fields, is_remote)?;
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -451,12 +452,13 @@ impl ProfileUpdateData {
|
||||||
if let Some(display_name) = &self.display_name {
|
if let Some(display_name) = &self.display_name {
|
||||||
validate_display_name(display_name)?;
|
validate_display_name(display_name)?;
|
||||||
};
|
};
|
||||||
|
let is_remote = self.actor_json.is_some();
|
||||||
// Validate and clean bio
|
// Validate and clean bio
|
||||||
if let Some(bio) = &self.bio {
|
if let Some(bio) = &self.bio {
|
||||||
let cleaned_bio = clean_bio(bio, self.actor_json.is_some())?;
|
let cleaned_bio = clean_bio(bio, is_remote)?;
|
||||||
self.bio = Some(cleaned_bio);
|
self.bio = Some(cleaned_bio);
|
||||||
};
|
};
|
||||||
self.extra_fields = clean_extra_fields(&self.extra_fields)?;
|
self.extra_fields = clean_extra_fields(&self.extra_fields, is_remote)?;
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -49,9 +49,10 @@ pub fn clean_bio(bio: &str, is_remote: bool) -> Result<String, ValidationError>
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Validates extra fields and removes fields with empty labels
|
/// Validates extra fields and removes fields with empty labels
|
||||||
pub fn clean_extra_fields(extra_fields: &[ExtraField])
|
pub fn clean_extra_fields(
|
||||||
-> Result<Vec<ExtraField>, ValidationError>
|
extra_fields: &[ExtraField],
|
||||||
{
|
is_remote: bool,
|
||||||
|
) -> Result<Vec<ExtraField>, ValidationError> {
|
||||||
let mut cleaned_extra_fields = vec![];
|
let mut cleaned_extra_fields = vec![];
|
||||||
for mut field in extra_fields.iter().cloned() {
|
for mut field in extra_fields.iter().cloned() {
|
||||||
field.name = field.name.trim().to_string();
|
field.name = field.name.trim().to_string();
|
||||||
|
@ -67,8 +68,14 @@ pub fn clean_extra_fields(extra_fields: &[ExtraField])
|
||||||
};
|
};
|
||||||
cleaned_extra_fields.push(field);
|
cleaned_extra_fields.push(field);
|
||||||
};
|
};
|
||||||
if cleaned_extra_fields.len() > 20 {
|
if is_remote {
|
||||||
return Err(ValidationError("at most 20 fields are allowed"));
|
if cleaned_extra_fields.len() > 100 {
|
||||||
|
return Err(ValidationError("at most 100 fields are allowed"));
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
if cleaned_extra_fields.len() > 10 {
|
||||||
|
return Err(ValidationError("at most 10 fields are allowed"));
|
||||||
|
};
|
||||||
};
|
};
|
||||||
Ok(cleaned_extra_fields)
|
Ok(cleaned_extra_fields)
|
||||||
}
|
}
|
||||||
|
@ -118,7 +125,8 @@ mod tests {
|
||||||
value: "<p>0x1234</p>".to_string(),
|
value: "<p>0x1234</p>".to_string(),
|
||||||
value_source: None,
|
value_source: None,
|
||||||
}];
|
}];
|
||||||
let result = clean_extra_fields(&extra_fields).unwrap().pop().unwrap();
|
let result = clean_extra_fields(&extra_fields, false)
|
||||||
|
.unwrap().pop().unwrap();
|
||||||
assert_eq!(result.name, "$ETH");
|
assert_eq!(result.name, "$ETH");
|
||||||
assert_eq!(result.value, "0x1234");
|
assert_eq!(result.value, "0x1234");
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue