(Bug 24730) - add a "delete on success" option.
authorPlatonides <platonides@users.mediawiki.org>
Sun, 29 Aug 2010 13:31:31 +0000 (13:31 +0000)
committerPlatonides <platonides@users.mediawiki.org>
Sun, 29 Aug 2010 13:31:31 +0000 (13:31 +0000)
Patch by infinity0x@gmail.com

I just added some spaces and added the FancyCaptcha.php definition.

FancyCaptcha.class.php
FancyCaptcha.php

index fd3590450e42430b18675f55213357c1256e197f..75a8e81c89d19626f1fa2295c28f450f2b701c8d 100644 (file)
@@ -227,4 +227,23 @@ class FancyCaptcha extends SimpleCaptcha {
                # the default for edits
                return wfEmptyMsg( $name, $text ) ? wfMsg( 'fancycaptcha-edit' ) : $text;
        }
+
+       /**
+        * Delete a solved captcha image, if $wgCaptchaDeleteOnSolve is true.
+        */
+       function passCaptcha() {
+               global $wgCaptchaDeleteOnSolve;
+
+               $info = $this->retrieveCaptcha(); // get the captcha info before it gets deleted
+               $pass = parent::passCaptcha();
+
+               if ( $pass && $wgCaptchaDeleteOnSolve ) {
+                       $filename = $this->imagePath( $info['salt'], $info['hash'] );
+                       if ( file_exists( $filename ) ) {
+                               unlink( $filename );
+                       }
+               }
+
+               return $pass;
+       }
 }
index 44510801f60a8bd8f3a6ba71656b654b282639ff..4204546bdfab634e7fedda097a1dd9ac96620136 100644 (file)
@@ -38,5 +38,13 @@ $wgCaptchaDirectoryLevels = 0; // To break into subdirectories
 global $wgCaptchaSecret;
 $wgCaptchaSecret = "CHANGE_THIS_SECRET!";
 
+/**
+ * By default the FancyCaptcha rotates among all available captchas.
+ * Setting $wgCaptchaDeleteOnSolve to true will delete the captcha 
+ * files when they are correctly solved. Thus the user will need 
+ * something like a cron creating new thumbnails to avoid drying up.
+ */
+$wgCaptchaDeleteOnSolve = false;
+
 $wgExtensionMessagesFiles['FancyCaptcha'] = dirname( __FILE__ ) . '/FancyCaptcha.i18n.php';
 $wgAutoloadClasses['FancyCaptcha'] = dirname( __FILE__ ) . '/FancyCaptcha.class.php';