* @return bool true to keep running callbacks
*/
function injectUserCreate( &$template ) {
- global $wgCaptchaTriggers, $wgOut;
+ global $wgCaptchaTriggers, $wgOut, $wgUser;
if( $wgCaptchaTriggers['createaccount'] ) {
+ if( $wgUser->isAllowed( 'skipcaptcha' ) ) {
+ wfDebug( "ConfirmEdit: user group allows skipping captcha on account creation\n" );
+ return true;
+ }
$template->set( 'header',
"<div class='captcha'>" .
$wgOut->parse( $this->getMessage( 'createaccount' ) ) .
* @access private
*/
function isBadLoginTriggered() {
- global $wgMemc;
- return intval( $wgMemc->get( $this->badLoginKey() ) ) > 0;
+ global $wgMemc, $wgCaptchaBadLoginAttempts;
+ return intval( $wgMemc->get( $this->badLoginKey() ) ) >= $wgCaptchaBadLoginAttempts;
}
/**
//$regex = 'http://+[a-z0-9_\-.]*(' . implode( '|', $lines ) . ')';
//return '/' . str_replace( '/', '\/', preg_replace('|\\\*/|', '/', $regex) ) . '/Si';
$regexes = '';
- $regexStart = '/http:\/\/+[a-z0-9_\-.]*(';
+ $regexStart = '/^https?:\/\/+[a-z0-9_\-.]*(';
$regexEnd = ')/Si';
$regexMax = 4096;
$build = false;
* @return bool true to continue, false to abort user creation
*/
function confirmUserCreate( $u, &$message ) {
- global $wgCaptchaTriggers;
+ global $wgCaptchaTriggers, $wgUser;
if( $wgCaptchaTriggers['createaccount'] ) {
+ if( $wgUser->isAllowed( 'skipcaptcha' ) ) {
+ wfDebug( "ConfirmEdit: user group allows skipping captcha on account creation\n" );
+ return true;
+ }
$this->trigger = "new account '" . $u->getName() . "'";
if( !$this->passCaptcha() ) {
$message = wfMsg( 'captcha-createaccount-fail' );