Index: trunk/phase3/includes/User.php
===================================================================
--- trunk/phase3/includes/User.php (revision 40768)
+++ trunk/phase3/includes/User.php (revision 40769)
@@ -3194,4 +3194,41 @@
return self::oldCrypt( $password, $userId ) === $hash;
}
}
+
+ /**
+ * Add a newuser log entry for this user
+ * @param bool $byEmail, account made by email?
+ */
+ public function addNewUserLogEntry( $byEmail = false ) {
+ global $wgUser, $wgContLang, $wgNewUserLog;
+ if( empty($wgNewUserLog) ) {
+ return true; // disabled
+ }
+ $talk = $wgContLang->getFormattedNsText( NS_TALK );
+ if( $this->getName() == $wgUser->getName() ) {
+ $action = 'create';
+ $message = '';
+ } else {
+ $action = 'create2';
+ $message = $byEmail ? wfMsgForContent( 'newuserlog-byemail' ) : '';
+ }
+ $log = new LogPage( 'newusers' );
+ $log->addEntry( $action, $this->getUserPage(), $message, array( $this->getId() ) );
+ return true;
+ }
+
+ /**
+ * Add an autocreate newuser log entry for this user
+ * Used by things like CentralAuth and perhaps other authplugins.
+ */
+ public static function addNewUserLogEntryAutoCreate() {
+ global $wgNewUserLog;
+ if( empty($wgNewUserLog) ) {
+ return true; // disabled
+ }
+ $log = new LogPage( 'newusers', false );
+ $log->addEntry( 'autocreate', $this->getUserPage(), '', array( $this->getId() ) );
+ return true;
+ }
+
}
Index: trunk/phase3/includes/Setup.php
===================================================================
--- trunk/phase3/includes/Setup.php (revision 40768)
+++ trunk/phase3/includes/Setup.php (revision 40769)
@@ -315,6 +315,16 @@
wfRunHooks( 'LogPageLogHeader', array( &$wgLogHeaders ) );
wfRunHooks( 'LogPageActionText', array( &$wgLogActions ) );
+if( !empty($wgNewUserLog) ) {
+ # Add a new log type
+ $wgLogTypes[] = 'newusers';
+ $wgLogNames['newusers'] = 'newuserlogpage';
+ $wgLogHeaders['newusers'] = 'newuserlogpagetext';
+ $wgLogActions['newusers/newusers'] = 'newuserlogentry'; // For compatibility with older log entries
+ $wgLogActions['newusers/create'] = 'newuserlog-create-entry';
+ $wgLogActions['newusers/create2'] = 'newuserlog-create2-entry';
+ $wgLogActions['newusers/autocreate'] = 'newuserlog-autocreate-entry';
+}
wfDebug( "Fully initialised\n" );
$wgFullyInitialised = true;
Index: trunk/phase3/includes/LogEventsList.php
===================================================================
--- trunk/phase3/includes/LogEventsList.php (revision 40768)
+++ trunk/phase3/includes/LogEventsList.php (revision 40769)
@@ -279,10 +279,22 @@
$revert = '(' . $this->skin->makeKnownLinkObj( $revdel, $this->message['revdel-restore'],
'target=' . $title->getPrefixedUrl() . $logParams ) . ')';
}
+ // Self-created users
+ } else if( self::typeAction($row,'newusers','create2') ) {
+ if( isset( $paramArray[0] ) ) {
+ $revert = $this->skin->userToolLinks( $paramArray[0], $title->getDBkey(), true );
+ } else {
+ # Fall back to a blue contributions link
+ $revert = $this->skin->userToolLinks( 1, $title->getDBkey() );
+ }
+ if( $time < '20080129000000' ) {
+ # Suppress $comment from old entries (before 2008-01-29), not needed and can contain incorrect links
+ $comment = '';
+ }
+ // Do nothing. The implementation is handled by the hook modifiying the passed-by-ref parameters.
} else {
wfRunHooks( 'LogLine', array( $row->log_type, $row->log_action, $title, $paramArray,
&$comment, &$revert, $row->log_timestamp ) );
- // Do nothing. The implementation is handled by the hook modifiying the passed-by-ref parameters.
}
// Event description
if( self::isDeleted($row,LogPage::DELETED_ACTION) ) {
Index: trunk/phase3/includes/DefaultSettings.php
===================================================================
--- trunk/phase3/includes/DefaultSettings.php (revision 40768)
+++ trunk/phase3/includes/DefaultSettings.php (revision 40769)
@@ -2748,6 +2748,11 @@
$wgLogActionsHandlers = array();
/**
+ * Maintain a log of newusers at Log/newusers?
+ */
+$wgNewUserLog = true;
+
+/**
* List of special pages, followed by what subtitle they should go under
* at Special:SpecialPages
*/
Index: trunk/phase3/includes/specials/SpecialUserlogin.php
===================================================================
--- trunk/phase3/includes/specials/SpecialUserlogin.php (revision 40768)
+++ trunk/phase3/includes/specials/SpecialUserlogin.php (revision 40769)
@@ -129,6 +129,7 @@
$result = $this->mailPasswordInternal( $u, false, 'createaccount-title', 'createaccount-text' );
wfRunHooks( 'AddNewAccount', array( $u, true ) );
+ $u->addNewUserLogEntry();
$wgOut->setPageTitle( wfMsg( 'accmailtitle' ) );
$wgOut->setRobotPolicy( 'noindex,nofollow' );
@@ -182,6 +183,7 @@
$wgUser = $u;
$wgUser->setCookies();
wfRunHooks( 'AddNewAccount', array( $wgUser ) );
+ $wgUser->addNewUserLogEntry();
if( $this->hasSessionCookie() ) {
return $this->successfulCreation();
} else {
@@ -197,6 +199,7 @@
$wgOut->addHtml( wfMsgWikiHtml( 'accountcreatedtext', $u->getName() ) );
$wgOut->returnToMain( false, $self );
wfRunHooks( 'AddNewAccount', array( $u ) );
+ $u->addNewUserLogEntry();
return true;
}
}
Index: trunk/phase3/languages/messages/MessagesEn.php
===================================================================
--- trunk/phase3/languages/messages/MessagesEn.php (revision 40768)
+++ trunk/phase3/languages/messages/MessagesEn.php (revision 40769)
@@ -2107,6 +2107,16 @@
'listusers-submit' => 'Show',
'listusers-noresult' => 'No user found.',
+# New user log
+'newuserlogpage' => 'User creation log',
+'newuserlogpagetext' => 'This is a log of user creations.',
+'newuserlog-desc' => 'Adds a [[Special:Log/newusers|log of account creations]]',
+'newuserlogentry' => '', # For compatibility, do not translate this
+'newuserlog-byemail' => 'password sent by e-mail',
+'newuserlog-create-entry' => 'New user',
+'newuserlog-create2-entry' => 'created account for $1',
+'newuserlog-autocreate-entry' => 'Account created automatically',
+
# Special:ListGroupRights
'listgrouprights' => 'User group rights',
'listgrouprights-summary' => 'The following is a list of user groups defined on this wiki, with their associated access rights.
Index: trunk/extensions/Newuserlog/Newuserlog.php
===================================================================
--- trunk/extensions/Newuserlog/Newuserlog.php (revision 40768)
+++ trunk/extensions/Newuserlog/Newuserlog.php (revision 40769)
@@ -1,5 +1,5 @@
<?php
-if (!defined('MEDIAWIKI')) die();
+if( !defined('MEDIAWIKI') ) die();
/**
* Add a new log to Special:Log that displays account creations in reverse
* chronological order using the AddNewAccount hook
@@ -21,22 +21,26 @@
'author' => 'Ævar Arnfjörð Bjarmason'
);
-$wgExtensionMessagesFiles['Newuserlog'] = dirname(__FILE__) . '/Newuserlog.i18n.php';
+if( isset($wgNewUserLog) ) {
+ echo( "You must remove the newuserlog extension, as it is now in the core software!\n" );
+} else {
+ # Run this hook on new account creation
+ $wgHooks['AddNewAccount'][] = 'wfNewuserlogHook';
+ $wgHooks['AuthPluginAutoCreate'][] = 'wfNewuserlogAutoCreate';
+ # Run this hook on Special:Log
+ $wgHooks['LogLine'][] = 'wfNewuserlogLogLine';
+ # Set message file
+ $wgExtensionMessagesFiles['Newuserlog'] = dirname(__FILE__) . '/Newuserlog.i18n.php';
+ # Add a new log type
+ $wgLogTypes[] = 'newusers';
+ $wgLogNames['newusers'] = 'newuserlogpage';
+ $wgLogHeaders['newusers'] = 'newuserlogpagetext';
+ $wgLogActions['newusers/newusers'] = 'newuserlogentry'; // For compatibility with older log entries
+ $wgLogActions['newusers/create'] = 'newuserlog-create-entry';
+ $wgLogActions['newusers/create2'] = 'newuserlog-create2-entry';
+ $wgLogActions['newusers/autocreate'] = 'newuserlog-autocreate-entry';
+}
-# Add a new log type
-$wgLogTypes[] = 'newusers';
-$wgLogNames['newusers'] = 'newuserlogpage';
-$wgLogHeaders['newusers'] = 'newuserlogpagetext';
-$wgLogActions['newusers/newusers'] = 'newuserlogentry'; // For compatibility with older log entries
-$wgLogActions['newusers/create'] = 'newuserlog-create-entry';
-$wgLogActions['newusers/create2'] = 'newuserlog-create2-entry';
-$wgLogActions['newusers/autocreate'] = 'newuserlog-autocreate-entry';
-# Run this hook on new account creation
-$wgHooks['AddNewAccount'][] = 'wfNewuserlogHook';
-$wgHooks['AuthPluginAutoCreate'][] = 'wfNewuserlogAutoCreate';
-# Run this hook on Special:Log
-$wgHooks['LogLine'][] = 'wfNewuserlogLogLine';
-
function wfNewuserlogHook( $user = null, $byEmail = false ) {
global $wgUser, $wgContLang;
@@ -80,7 +84,9 @@
* @param string $time timestamp of the log entry
* @return bool true
*/
-function wfNewuserlogLogLine( $log_type = '', $log_action = '', $title = null, $paramArray = array(), &$comment = '', &$revert = '', $time = '' ) {
+function wfNewuserlogLogLine( $log_type = '', $log_action = '', $title = null, $paramArray = array(),
+ &$comment = '', &$revert = '', $time = '' )
+{
if ( $log_action == 'create2' ) {
global $wgUser;
$skin = $wgUser->getSkin();
Index: trunk/extensions/CentralAuth/CentralAuthHooks.php
===================================================================
--- trunk/extensions/CentralAuth/CentralAuthHooks.php (revision 40768)
+++ trunk/extensions/CentralAuth/CentralAuthHooks.php (revision 40769)
@@ -393,6 +393,7 @@
# Notify hooks (e.g. Newuserlog)
wfRunHooks( 'AuthPluginAutoCreate', array( $user ) );
+ $user->addNewUserLogEntryAutoCreate();
return true;
}
Index: trunk/extensions/ConfirmAccount/ConfirmAccount_body.php
===================================================================
--- trunk/extensions/ConfirmAccount/ConfirmAccount_body.php (revision 40768)
+++ trunk/extensions/ConfirmAccount/ConfirmAccount_body.php (revision 40769)
@@ -558,6 +558,7 @@
# Safe to hook/log now...
wfRunHooks( 'AddNewAccount', array( $user ) );
+ $user->addNewUserLogEntry();
# OK, now remove the request from the queue
$dbw->delete( 'account_requests', array('acr_id' => $this->acrID), __METHOD__ );
# Clear cache for notice of how many account requests there are