HTMLForm: Allow IP adresses as username in HTMLUserTextField
authorFlorian <florian.schmidt.stargatewissen@gmail.com>
Fri, 24 Jul 2015 16:59:53 +0000 (18:59 +0200)
committerFlorian <florian.schmidt.stargatewissen@gmail.com>
Fri, 24 Jul 2015 16:59:53 +0000 (18:59 +0200)
Can be configured with the 'ipallowed' config parameter, which defaults
to false (IP's not allowed).

Bug: T106807
Change-Id: Ib2885883bdb3383c60382bf3257afdfc3cc26821

includes/htmlform/HTMLUserTextField.php

index 949fefd..5869002 100644 (file)
@@ -17,6 +17,7 @@ class HTMLUserTextField extends HTMLTextField {
        public function __construct( $params ) {
                $params += array(
                        'exists' => false,
+                       'ipallowed' => false,
                );
 
                parent::__construct( $params );
@@ -24,11 +25,14 @@ class HTMLUserTextField extends HTMLTextField {
 
        public function validate( $value, $alldata ) {
                // check, if a user exists with the given username
-               $user = User::newFromName( $value );
+               $user = User::newFromName( $value, false );
 
                if ( !$user ) {
                        return $this->msg( 'htmlform-user-not-valid', $value )->parse();
-               } elseif ( $this->mParams['exists'] && $user->getId() === 0 ) {
+               } elseif (
+                       ( $this->mParams['exists'] && $user->getId() === 0 ) &&
+                       !( $this->mParams['ipallowed'] && User::isIP( $value ) )
+               ) {
                        return $this->msg( 'htmlform-user-not-exists', $user->getName() )->parse();
                }