On 12/09/2010 11:45 PM, Platonides wrote:
> Clayton wrote:
>> Ok, this is the exact code I've added to the end of the
>> LocalSettings.php file:
>>
>> ###################
>> $wgHooks['AbortNewAccount'][] = 'noMailinator';
>>
>> function noMailinator( $user, $message ) {
>>      if( !preg_match( '/@(mailinator|binkmail).com$/', $user->getEmail() )) {
>>        $message =  'One-time-use email services are forbidden on the
>> OpenOffice.org Wiki';
>>        return false;
>>      }
>>      return true;
>> }
>> ###################
>>
>> I created a test account using mailinator as the authentication email
>> address, and it went through and accepted the account creation.  So...
>> is there any way to trap or see what's happening at this stage?  I can't
>> see any reason the function doesn't work (now that I've got the right
>> number of parenthesis).  Given my (weak) knowledge of php, it seems to
>> follow what's documented.
>
> The lack of ampersand before $message is likely to be blocking the hook
> from running (PHP 5.3 is very nitpicking on this).
> And yes, the original code missed a ), had a ! too much and should have
> escaped the . inside the regex. It's also a good idea to make it case
> insensitive (and legal per rfc822).

It was a combination of the & and !.  I looked up the exclamation 
thinking it was a "not", but what I found seemed to indicate it was an 
"if exists"... so I left it in place during the initial testing.

So, now it works exactly as I want (tested creating an account with 
mailinator and with a regular email account)... for now just mailinator 
and binkmail are blocked, but I can add more to the "or" if necessary.

Thanks to everyone for walking me through this.  I've learned just a bit 
more about php and MediaWiki :-)

C.

_______________________________________________
MediaWiki-l mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-l

Reply via email to