]> Untitled Git - lemmy.git/commitdiff
Relax honeypot check (fixes #2595) (#2596)
authorNutomic <me@nutomic.com>
Thu, 1 Dec 2022 21:33:59 +0000 (21:33 +0000)
committerGitHub <noreply@github.com>
Thu, 1 Dec 2022 21:33:59 +0000 (16:33 -0500)
Co-authored-by: Dessalines <dessalines@users.noreply.github.com>
crates/api_common/src/utils.rs

index 3aaf1972940c2f57d9778166d26f71b27e9d7824..1e863e855c4ec266ddae4865df5ef640ea7ed545 100644 (file)
@@ -307,7 +307,7 @@ pub fn site_description_length_check(description: &str) -> Result<(), LemmyError
 
 /// 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() {
+  if honeypot.is_some() && honeypot != &Some(String::new()) {
     Err(LemmyError::from_message("honeypot_fail"))
   } else {
     Ok(())
@@ -724,7 +724,7 @@ pub fn listing_type_with_site_default(
 
 #[cfg(test)]
 mod tests {
-  use crate::utils::password_length_check;
+  use crate::utils::{honeypot_check, password_length_check};
 
   #[test]
   #[rustfmt::skip]
@@ -734,4 +734,12 @@ mod tests {
     assert!(password_length_check("short").is_err());
     assert!(password_length_check("looooooooooooooooooooooooooooooooooooooooooooooooooooooooooong").is_err());
   }
+
+  #[test]
+  fn honeypot() {
+    assert!(honeypot_check(&None).is_ok());
+    assert!(honeypot_check(&Some(String::new())).is_ok());
+    assert!(honeypot_check(&Some("1".to_string())).is_err());
+    assert!(honeypot_check(&Some("message".to_string())).is_err());
+  }
 }