mirror of https://github.com/LemmyNet/lemmy.git
Adding honeypot to user and post creation. Fixes #1802
parent
a99ba2de24
commit
59a883575d
|
@ -439,3 +439,12 @@ pub fn site_description_length_check(description: &str) -> Result<(), LemmyError
|
|||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
/// Checks for a honeypot. If this field is filled, fail the rest of the function
|
||||
pub fn honeypot_check(honeypot: &Option<String>) -> Result<(), LemmyError> {
|
||||
if honeypot.is_some() {
|
||||
Err(ApiError::err("honeypot_fail").into())
|
||||
} else {
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
|
|
@ -26,6 +26,7 @@ pub struct Register {
|
|||
pub email: Option<String>,
|
||||
pub captcha_uuid: Option<String>,
|
||||
pub captcha_answer: Option<String>,
|
||||
pub honeypot: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(Deserialize)]
|
||||
|
|
|
@ -18,6 +18,7 @@ pub struct CreatePost {
|
|||
pub community_id: CommunityId,
|
||||
pub url: Option<Url>,
|
||||
pub body: Option<String>,
|
||||
pub honeypot: Option<String>,
|
||||
pub nsfw: Option<bool>,
|
||||
pub auth: String,
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@ use lemmy_api_common::{
|
|||
blocking,
|
||||
check_community_ban,
|
||||
get_local_user_view_from_jwt,
|
||||
honeypot_check,
|
||||
mark_post_as_read,
|
||||
post::*,
|
||||
};
|
||||
|
@ -46,6 +47,7 @@ impl PerformCrud for CreatePost {
|
|||
let slur_regex = &context.settings().slur_regex();
|
||||
check_slurs(&data.name, slur_regex)?;
|
||||
check_slurs_opt(&data.body, slur_regex)?;
|
||||
honeypot_check(&data.honeypot)?;
|
||||
|
||||
if !is_valid_post_title(&data.name) {
|
||||
return Err(ApiError::err("invalid_post_title").into());
|
||||
|
|
|
@ -43,6 +43,7 @@ impl PerformCrud for GetSite {
|
|||
show_nsfw: true,
|
||||
captcha_uuid: None,
|
||||
captcha_answer: None,
|
||||
honeypot: None,
|
||||
};
|
||||
let login_response = register.perform(context, websocket_id).await?;
|
||||
info!("Admin {} created", setup.admin_username);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
use crate::PerformCrud;
|
||||
use actix_web::web::Data;
|
||||
use lemmy_api_common::{blocking, password_length_check, person::*};
|
||||
use lemmy_api_common::{blocking, honeypot_check, password_length_check, person::*};
|
||||
use lemmy_apub::{
|
||||
generate_apub_endpoint,
|
||||
generate_followers_url,
|
||||
|
@ -55,6 +55,7 @@ impl PerformCrud for Register {
|
|||
}
|
||||
|
||||
password_length_check(&data.password)?;
|
||||
honeypot_check(&data.honeypot)?;
|
||||
|
||||
// Make sure passwords match
|
||||
if data.password != data.password_verify {
|
||||
|
|
Loading…
Reference in New Issue