From 73d33cce75f34cd0eec01863aa7db2ac9eb536b7 Mon Sep 17 00:00:00 2001 From: saxmatt Date: Mon, 4 Oct 2004 08:49:45 +0000 Subject: [PATCH] Kitten's emergent registration / comment whitelisting patch. git-svn-id: http://svn.automattic.com/wordpress/trunk@1737 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-admin/options-discussion.php | 9 +++------ wp-admin/upgrade-schema.php | 1 + wp-includes/functions.php | 17 +++++++++++++++-- 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/wp-admin/options-discussion.php b/wp-admin/options-discussion.php index e45ff4bd9..5f0b68691 100644 --- a/wp-admin/options-discussion.php +++ b/wp-admin/options-discussion.php @@ -57,7 +57,7 @@ if ($action == 'retrospam') {

- +
(These settings may be overridden for individual articles.)') ?>
    @@ -101,11 +101,8 @@ if ($action == 'retrospam') { /> -
  • - -
  • +
  • +
diff --git a/wp-admin/upgrade-schema.php b/wp-admin/upgrade-schema.php index 06891a6a0..45e20a192 100644 --- a/wp-admin/upgrade-schema.php +++ b/wp-admin/upgrade-schema.php @@ -211,6 +211,7 @@ function populate_options() { add_option('use_linksupdate', 0); add_option('template', 'default'); add_option('stylesheet', 'default'); + add_option('comment_whitelist', 0); // Delete unused options $unusedoptions = array ('blodotgsping_url', 'bodyterminator', 'emailtestonly', 'phoneemail_separator', 'smilies_directory', 'subjectprefix', 'use_bbcode', 'use_blodotgsping', 'use_phoneemail', 'use_quicktags', 'use_weblogsping', 'weblogs_cache_file', 'use_preview', 'use_htmltrans', 'smilies_directory', 'rss_language', 'fileupload_allowedusers', 'use_phoneemail', 'default_post_status', 'default_post_category', 'archive_mode', 'time_difference', 'links_minadminlevel', 'links_use_adminlevels', 'links_rating_type', 'links_rating_char', 'links_rating_ignore_zero', 'links_rating_single_image', 'links_rating_image0', 'links_rating_image1', 'links_rating_image2', 'links_rating_image3', 'links_rating_image4', 'links_rating_image5', 'links_rating_image6', 'links_rating_image7', 'links_rating_image8', 'links_rating_image9', 'weblogs_cacheminutes', 'comment_allowed_tags', 'search_engine_friendly_urls', 'default_geourl_lat', 'default_geourl_lon', 'use_default_geourl'); diff --git a/wp-includes/functions.php b/wp-includes/functions.php index 09dfb4b89..70c0254e1 100644 --- a/wp-includes/functions.php +++ b/wp-includes/functions.php @@ -1473,13 +1473,26 @@ function get_posts($args) { } function check_comment($author, $email, $url, $comment, $user_ip) { + global $wpdb; + if (1 == get_settings('comment_moderation')) return false; // If moderation is set to manual if ( (count(explode('http:', $comment)) - 1) >= get_settings('comment_max_links') ) return false; // Check # of external links - if ('' == trim( get_settings('moderation_keys') ) ) return true; // If moderation keys are empty - $words = explode("\n", get_settings('moderation_keys') ); + // Comment whitelisting: + if ( 1 == get_settings('comment_whitelist')) { + $ok_to_comment = $wpdb->get_var("SELECT comment_approved FROM $wpdb->comments WHERE comment_author_email = '$email' and comment_approved = '1' "); + if ( 1 == $ok_to_comment && false === strpos( $email, get_settings('moderation_keys')) ) + return true + return false; + } + + $mod_keys = trim( get_settings('moderation_keys') ); + if ('' == $mod_keys ) + return true; // If moderation keys are empty + $words = explode("\n", $mod_keys ); + foreach ($words as $word) { $word = trim($word);