Merge pull request #7 from jacob-g/master

Added a few fixes, including detection of Scratch Team members
This commit is contained in:
Sarah Otts 2016-01-12 09:42:42 -06:00
commit b585046ae5
6 changed files with 134 additions and 84 deletions

View file

@ -1,7 +1,8 @@
<?php
/*
(c) Aaron Schulz 2007, GPL
/*
(c) Aaron Schulz 2007, GPL
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
@ -16,6 +17,7 @@
with this program; if not, write to the Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
http://www.gnu.org/copyleft/gpl.html
*/
if ( !defined( 'MEDIAWIKI' ) ) {
@ -36,9 +38,11 @@ require( dirname( __FILE__ ) . '/ConfirmAccount.config.php' );
# Define were PHP files and i18n files are located
require( dirname( __FILE__ ) . '/ConfirmAccount.setup.php' );
ConfirmAccountSetup::defineSourcePaths( $wgAutoloadClasses, $wgExtensionMessagesFiles );
# Define JS/CSS modules and file locations
require( dirname( __FILE__ ) . '/frontend/ConfirmAccountUI.setup.php' );
ConfirmAccountUISetup::defineResourceModules( $wgResourceModules );
# Let some users confirm account requests and view credentials for created accounts
@ -66,16 +70,22 @@ $wgHooks['LoadExtensionSchemaUpdates'][] = 'ConfirmAccountUpdaterHooks::addSchem
$wgExtensionFunctions[] = 'efLoadConfirmAccount';
/**
* This function is for setup that has to happen in Setup.php
* when the functions in $wgExtensionFunctions get executed.
* @return void
*/
function efLoadConfirmAccount() {
global $wgEnableEmail;
# This extension needs email enabled!
# Otherwise users can't get their passwords...
if ( !$wgEnableEmail ) {
/*if ( !$wgEnableEmail ) {
echo "ConfirmAccount extension requires \$wgEnableEmail set to true.\n";
exit( 1 ) ;
}*/
}
}

View file

@ -294,10 +294,10 @@ class AccountConfirmSubmission {
}
# Actually send out the email (@TODO: rollback on failure including $wgAuth)
$result = $user->sendMail(
/*$result = $user->sendMail(
$context->msg( 'confirmaccount-email-subj' )->inContentLanguage()->text(),
$ebody
);
);*/
# Update user count
$ssUpdate = new SiteStatsUpdate( 0, 0, 0, 0, 1 );

View file

@ -112,7 +112,7 @@ class AccountRequestSubmission {
return;
}
$success = false;
preg_match_all('%<div id="comments-\d+" class="comment +" data-comment-id="\d+">.*?<div class="actions-wrap">.*?<div class="name">\s+<a href="/users/(([a-zA-Z0-9]|-|_)+)">(([a-zA-Z0-9]|-|_)+)</a>\s+</div>\s+<div class="content">(.*?)</div>%ms', $data, $matches);
preg_match_all('%<div id="comments-\d+" class="comment +" data-comment-id="\d+">.*?<div class="actions-wrap">.*?<div class="name">\s+<a href="/users/(([a-zA-Z0-9]|-|_)+)">(([a-zA-Z0-9]|-|_|\*)+)</a>\s+</div>\s+<div class="content">(.*?)</div>%ms', $data, $matches);
unset($matches[2]);
unset($matches[3]);
unset($matches[4]);

View file

@ -135,6 +135,8 @@ There may be contact lists on site that you can use if you want to know more abo
$2
There may be contact lists on site that you can use if you want to know more about user account policy.',
'confirmaccount-altwarning' => 'The following accounts have made edits from the same IP address as this user:',
'confirmaccount-warning' => 'Warning',
);

View file

@ -1123,6 +1123,15 @@ Este código de confirmación caducará el $4.',
La dirección de correo electrónico ha sido confirmada. Puedes confirmar la solicitud aquí "$2".',
'acct_request_throttle_hit' => 'Perdón, ya has solicitado {{PLURAL:$1|1 cuenta|$1 cuentas}}.
No puedes hacer ninguna otra solicitud.',
//Scratch-specific stuff
'requestaccount-user-verification' => 'Verificion de usuario',
'requestaccount-code-troubleshoot' => '\'\'\'Aviso:\'\'\' Si tienes problemas con el sistema de verificacion, por favor lee la [[Scratch_Wiki:Become a contributor/Verification code troubleshooting|pagina de soluciones]].',
'requestaccount-set-pwd' => 'Decide la contrasena',
'requestaccount-project-info' => 'Por favor ve al [$1 proyecto de verificacion] y comenta el codigo siguiente:<br />\'\'\'$2\'\'\'',
'requestaccount-project-link' => 'http://scratch.mit.edu/projects/10135908/',
'requestaccount-nocomment-error' => 'No aparece como hayas comentado el codigo.',
'requestaccount-api-failed' => 'Estamos teniendo problemas con el servidor. Por favor trata de registrarte otra vez en un tiempo diferente.',
);
/** Estonian (eesti)

View file

@ -422,6 +422,20 @@ class ConfirmAccountsPage extends SpecialPage {
$form .= '</fieldset>';
}
//search for possible alt accounts
$ip = $accountReq->getIP();
$alts = $this->getUsersFromIP($ip);
if (!empty($alts)) {
foreach ($alts as &$user) {
}
$form .= '<fieldset>';
$form .= '<legend style="color:#F00; font-weight:bold">' . $this->msg('confirmaccount-warning') . '</legend>';
$form .= '<strong>' . $this->msg('confirmaccount-altwarning') . '</strong>';
$form .= '<ul><li>' . implode('</li><li>', $alts) . '</li></ul>';
$form .= '</fieldset>';
}
$form .= '<fieldset>';
$form .= '<legend>' . $this->msg( 'confirmaccount-legend' )->escaped() . '</legend>';
$form .= "<strong>" . $this->msg( 'confirmaccount-confirm' )->parse() . "</strong>\n";
@ -746,6 +760,21 @@ class ConfirmAccountsPage extends SpecialPage {
return $r;
}
function getUsersFromIP($ip) {
global $wgShowExceptionDetails ;
$wgShowExceptionDetails = true;
$dbr = wfGetDB( DB_SLAVE );
$result = $dbr->select('recentchanges', array('DISTINCT(rc_user_text)'), 'rc_ip=\'' . $ip . '\'');
$return = array();
foreach ($result as $row) {
$return[] = (string)$row->rc_user_text;
}
array_unique($return);
return $return;
}
}
/**