https://www.mediawiki.org/wiki/Special:Code/MediaWiki/113625

Revision: 113625
Author:   akshay
Date:     2012-03-12 15:29:12 +0000 (Mon, 12 Mar 2012)
Log Message:
-----------
Fixed Bug 31664
Added a 'signupapi-invalidusername' message
Removed blank username checking from server-side to client-side
Removed 'console.log' from verification.js which was left out during testing
Formatted includes/verification.js for some coding conventions

Modified Paths:
--------------
    trunk/extensions/SignupAPI/SignupAPI.i18n.php
    trunk/extensions/SignupAPI/includes/ApiValidateSignup.php
    trunk/extensions/SignupAPI/includes/verification.js

Modified: trunk/extensions/SignupAPI/SignupAPI.i18n.php
===================================================================
--- trunk/extensions/SignupAPI/SignupAPI.i18n.php       2012-03-12 14:31:06 UTC 
(rev 113624)
+++ trunk/extensions/SignupAPI/SignupAPI.i18n.php       2012-03-12 15:29:12 UTC 
(rev 113625)
@@ -22,6 +22,7 @@
        'signupapi-badretype' => 'The passwords you entered do not match',
        'signupapi-passwordsmatch' => 'Passwords match',
        'signupapi-invalidemailaddress' => 'E-mail address is invalid',
+       'signupapi-invalidusername' => 'Username entered is invalid',
 );
 
 /** Message documentation (Message documentation)

Modified: trunk/extensions/SignupAPI/includes/ApiValidateSignup.php
===================================================================
--- trunk/extensions/SignupAPI/includes/ApiValidateSignup.php   2012-03-12 
14:31:06 UTC (rev 113624)
+++ trunk/extensions/SignupAPI/includes/ApiValidateSignup.php   2012-03-12 
15:29:12 UTC (rev 113625)
@@ -23,15 +23,18 @@
 
                switch ( $params['field'] ) {
                        case "username":
-                               $mUser = User::newFromName( 
$params['inputVal'], 'creatable' );
-                               if ( !is_object( $mUser ) ) {
+                               if( $params['inputVal'] == '' )  {
+                                       # Username left blank
                                        $result['result'] = wfMsg( 
'signupapi-noname' );
-                                       $result['icon'] = 
'MW-Icon-AlertMark.png';
-                               }
-
-                               if ( 0 != $mUser->idForName() ) {
+                                       $result['icon'] = 
"MW-Icon-AlertMark.png";
+                               } else if (  !is_null( User::idFromName( 
$params['inputVal'] ) ) ) {
+                                       # User Exists
                                        $result['result'] = wfMsg( 
'signupapi-userexists' );
                                        $result['icon'] = "MW-Icon-NoMark.png";
+                               } else if( !User::isValidUserName( 
$params['inputval'] ) ) {
+                                       # Illegal name
+                                       $result['result'] = wfMsg( 
'signupapi-invalidusername' );
+                                       $result['icon'] = "MW-Icon-NoMark.png";
                                } else {
                                        $result['result'] = wfMsg( 
'signupapi-ok' );
                                        $result['icon'] = 
"MW-Icon-CheckMark.png";

Modified: trunk/extensions/SignupAPI/includes/verification.js
===================================================================
--- trunk/extensions/SignupAPI/includes/verification.js 2012-03-12 14:31:06 UTC 
(rev 113624)
+++ trunk/extensions/SignupAPI/includes/verification.js 2012-03-12 15:29:12 UTC 
(rev 113625)
@@ -2,77 +2,87 @@
 
 jQuery( document ).ready( function( $ ) {
 
-       function validateInput( fieldtype,fieldid ) {
-               var inputVal = document.getElementById(fieldid).value;
-               var valresult = document.getElementById(fieldid+'val');
+       function validateInput( fieldtype, fieldid ) {
+               var inputVal = document.getElementById( fieldid ).value;
+               var valresult = document.getElementById( fieldid + 'val' );
                $.ajax({
                        type: "POST",
                        url: mw.util.wikiScript('api'),
-                       data: {'action':'validatesignup', 'format':'json', 
'field':fieldtype, 'inputVal':inputVal },
+                       data: { 'action':'validatesignup', 'format':'json', 
'field':fieldtype, 'inputVal':inputVal },
                        dataType: 'json',
                        success: function( jsondata ){
                                var image = "<img src='"+ imagePath + 
jsondata.signup.icon +"'>";
                                var message = jsondata.signup.result;
-                               valresult.innerHTML = image+message;
+                               valresult.innerHTML = image + message;
                        }
                });
        }
 
        function passwordStrength() {
-               var strength = document.getElementById('wpPassword2val');
-               var strongRegex = new 
RegExp("^(?=.{8,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\\W).*$", "g");
-               var mediumRegex = new 
RegExp("^(?=.{7,})(((?=.*[A-Z])(?=.*[a-z]))|((?=.*[A-Z])(?=.*[0-9]))|((?=.*[a-z])(?=.*[0-9]))).*$",
 "g");
-               var enoughRegex = new RegExp("(?=.{6,}).*", "g");
-               var pwd = document.getElementById("wpPassword2");
+               var strength = document.getElementById( 'wpPassword2val' );
+               var strongRegex = new RegExp( 
"^(?=.{8,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\\W).*$", "g" );
+               var mediumRegex = new RegExp( 
"^(?=.{7,})(((?=.*[A-Z])(?=.*[a-z]))|((?=.*[A-Z])(?=.*[0-9]))|((?=.*[a-z])(?=.*[0-9]))).*$",
 "g" );
+               var enoughRegex = new RegExp( "(?=.{6,}).*", "g" );
+               var pwd = document.getElementById( "wpPassword2" );
 
                if (pwd.value.length==0) {
                        strength.innerHTML = mw.message( 
'signupapi-enterpassword' );
-               } else if (pwd.value.length<minlength) {
+               } else if ( pwd.value.length<minlength ) {
                        strength.innerHTML = mw.message( 
'signupapi-passwordtooshort', minlength );
                        $("#progress").progressbar({value: 10});
-                       $("div.ui-progressbar-value").css("background","red");
-               } else if (strongRegex.test(pwd.value)) {
+                       $("div.ui-progressbar-value").css( "background", "red" 
);
+               } else if ( strongRegex.test(pwd.value) ) {
                        strength.innerHTML = '<span 
style="color:green">'+mw.message( 'signupapi-strong' )+'</span>';
                                $("#progress").progressbar({value: 100});
-                       $("div.ui-progressbar-value").css("background","green");
-               } else if (mediumRegex.test(pwd.value)) {
+                       $("div.ui-progressbar-value").css( "background", 
"green" );
+               } else if ( mediumRegex.test(pwd.value) ) {
                        strength.innerHTML = '<span 
style="color:orange">'+mw.message( 'signupapi-medium' )+'</span>';
                        $("#progress").progressbar({value: 60});
-                       
$("div.ui-progressbar-value").css("background","orange");
+                       $("div.ui-progressbar-value").css( "background", 
"orange" );
                } else {
                        strength.innerHTML = '<span 
style="color:red">'+mw.message( 'signupapi-weak' )+'</span>';
                        $("#progress").progressbar({value: 30});
-                       $("div.ui-progressbar-value").css("background","red");
+                       $("div.ui-progressbar-value").css( "background", "red");
                }
        }
 
-       function checkRetype( pass,retype ) {
-               var valresult = document.getElementById('wpRetypeval');
+       function checkRetype( pass, retype ) {
+               var valresult = document.getElementById( 'wpRetypeval' );
                var image = "";
                var message = "";
-               if ( pass==retype ) {
+               if ( pass == retype ) {
                        image = "<img src='"+ imagePath 
+"MW-Icon-CheckMark.png'>";
                        message = mw.message( 'signupapi-passwordsmatch' );
-               }else {
+               } else {
                        image = "<img src='"+ imagePath +"MW-Icon-NoMark.png'>";
                        message = mw.message( 'signupapi-badretype' );
                }
                valresult.innerHTML = image+message;
        }
+       
+       function checkUsername( fieldid ) {
+               var inputVal = document.getElementById( fieldid ).value;
+               var valresult = document.getElementById( fieldid + 'val' );
+               if( inputVal == '' ) {
+                       var image = "<img src='"+ imagePath + 
"MW-Icon-AlertMark.png'>";
+                       var message = mw.message( 'signupapi-noname' );
+                       valresult.innerHTML = image + message;
+               } 
+       }
 
-       $('#wpName2').change(function() {validateInput("username","wpName2");});
-       $('#wpPassword2').keyup(function() {passwordStrength();});
-       $('#wpRetype').change(function() 
{checkRetype(document.getElementById("wpPassword2").value,document.getElementById("wpRetype").value);});
-       $('#wpEmail').change(function() {validateInput( "email","wpEmail" );});
+       $('#wpName2').blur( function() {checkUsername( "wpName2" );} );
+       $('#wpName2').change( function() {validateInput( "username", "wpName2" 
);} );
+       $('#wpPassword2').keyup( function() {passwordStrength();} );
+       $('#wpRetype').change( function() {checkRetype(document.getElementById( 
"wpPassword2" ).value,document.getElementById( "wpRetype" ).value);} );
+       $('#wpEmail').change( function() {validateInput( "email","wpEmail" );} 
);
 
-       $('#wpName2').after('<span id="wpName2val" class="wpName2val"></span>');
-       $('#wpPassword2').after('<span id="wpPassword2val"></span><div 
id="progress" class="progress" style="width:30%; float: right;"></div>');
-       $('#wpRetype').after('<span id="wpRetypeval" 
class="wpRetypeval"></span>');
-       $('#wpEmail').after('<span id="wpEmailval" class="wpEmailval"></span>');
+       $('#wpName2').after( '<span id="wpName2val" class="wpName2val"></span>' 
);
+       $('#wpPassword2').after( '<span id="wpPassword2val"></span><div 
id="progress" class="progress" style="width:30%; float: right;"></div>' );
+       $('#wpRetype').after( '<span id="wpRetypeval" 
class="wpRetypeval"></span>' );
+       $('#wpEmail').after( '<span id="wpEmailval" class="wpEmailval"></span>' 
);
 
        $("#progress").progressbar();
-       console.log();
-       $('div.ui-progressbar').css('background','#F2F5F7');
+       $('div.ui-progressbar').css( 'background', '#F2F5F7' );
 
        var imagePath = window.wgServer+window.wgExtensionAssetsPath + 
"/SignupAPI/includes/images/";
        var minlength = window.wgMinimalPasswordLength;


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

Reply via email to