Cleaning optional post bodies. Fixes #2039 (#2043)

* Cleaning optional post bodies. Fixes #2039

* Only trim once.

* Using .map() instead.
webfinger-order
Dessalines 2022-01-20 09:04:54 -05:00 committed by GitHub
parent a212f6b780
commit 19ccaf767c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 14 additions and 4 deletions

View File

@ -26,7 +26,13 @@ use lemmy_db_schema::{
}; };
use lemmy_utils::{ use lemmy_utils::{
request::fetch_site_data, request::fetch_site_data,
utils::{check_slurs, check_slurs_opt, clean_url_params, is_valid_post_title}, utils::{
check_slurs,
check_slurs_opt,
clean_optional_text,
clean_url_params,
is_valid_post_title,
},
ConnectionId, ConnectionId,
LemmyError, LemmyError,
}; };
@ -72,7 +78,7 @@ impl PerformCrud for CreatePost {
let post_form = PostForm { let post_form = PostForm {
name: data.name.trim().to_owned(), name: data.name.trim().to_owned(),
url: data_url.map(|u| clean_url_params(u.to_owned()).into()), url: data_url.map(|u| clean_url_params(u.to_owned()).into()),
body: data.body.to_owned(), body: clean_optional_text(&data.body),
community_id: data.community_id, community_id: data.community_id,
creator_id: local_user_view.person.id, creator_id: local_user_view.person.id,
nsfw: data.nsfw, nsfw: data.nsfw,

View File

@ -18,7 +18,7 @@ use lemmy_db_schema::{
}; };
use lemmy_utils::{ use lemmy_utils::{
request::fetch_site_data, request::fetch_site_data,
utils::{check_slurs_opt, clean_url_params, is_valid_post_title}, utils::{check_slurs_opt, clean_optional_text, clean_url_params, is_valid_post_title},
ConnectionId, ConnectionId,
LemmyError, LemmyError,
}; };
@ -79,7 +79,7 @@ impl PerformCrud for EditPost {
community_id: orig_post.community_id, community_id: orig_post.community_id,
name: data.name.to_owned().unwrap_or(orig_post.name), name: data.name.to_owned().unwrap_or(orig_post.name),
url: data_url.map(|u| clean_url_params(u.to_owned()).into()), url: data_url.map(|u| clean_url_params(u.to_owned()).into()),
body: data.body.to_owned(), body: clean_optional_text(&data.body),
nsfw: data.nsfw, nsfw: data.nsfw,
updated: Some(naive_now()), updated: Some(naive_now()),
embed_title, embed_title,

View File

@ -175,6 +175,10 @@ pub fn clean_url_params(mut url: Url) -> Url {
url url
} }
pub fn clean_optional_text(text: &Option<String>) -> Option<String> {
text.as_ref().map(|t| t.trim().to_string())
}
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use crate::utils::{clean_url_params, is_valid_post_title}; use crate::utils::{clean_url_params, is_valid_post_title};