Changes for NewUserMessage:
authorTim Starling <tstarling@users.mediawiki.org>
Thu, 7 Aug 2008 10:39:19 +0000 (10:39 +0000)
committerTim Starling <tstarling@users.mediawiki.org>
Thu, 7 Aug 2008 10:39:19 +0000 (10:39 +0000)
* Add UserGetReservedNames hook to allow extensions to define reserved names without loading messages at setup
* Don't try to notify nonexistent, non-IP users by inserting a username into the user_newtalk.user_ip field. It doesn't work.

includes/Article.php
includes/User.php

index 2c479aa..a86d6ee 100644 (file)
@@ -2767,13 +2767,13 @@ class Article {
                        && !($minoredit && $wgUser->isAllowed('nominornewtalk') ) ) {
                        if (wfRunHooks('ArticleEditUpdateNewTalk', array(&$this)) ) {
                                $other = User::newFromName( $shortTitle );
-                               if( is_null( $other ) && User::isIP( $shortTitle ) ) {
+                               if( User::isIP( $shortTitle ) ) {
                                        // An anonymous user
-                                       $other = new User();
-                                       $other->setName( $shortTitle );
-                               }
-                               if( $other ) {
                                        $other->setNewtalk( true );
+                               } elseif( $other->isLoggedIn() ) {
+                                       $other->setNewtalk( true );
+                               } else {
+                                       wfDebug( __METHOD__. ": don't need to notify a nonexistent user\n" );
                                }
                        }
                }
index b59b3a3..99b0dd6 100644 (file)
@@ -540,8 +540,14 @@ class User {
                        return false;
                }
 
+               static $reservedUsernames = false;
+               if ( !$reservedUsernames ) {
+                       $reservedUsernames = $wgReservedUsernames;
+                       wfRunHooks( 'UserGetReservedNames', array( &$reservedUsernames ) );
+               }
+
                // Certain names may be reserved for batch processes.
-               foreach ( $wgReservedUsernames as $reserved ) {
+               foreach ( $reservedUsernames as $reserved ) {
                        if ( substr( $reserved, 0, 4 ) == 'msg:' ) {
                                $reserved = wfMsgForContent( substr( $reserved, 4 ) );
                        }