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