85 lines
2.3 KiB
JavaScript
85 lines
2.3 KiB
JavaScript
$(document).ready(function()
|
|
{
|
|
if(v.from == 'admin')
|
|
{
|
|
$.setAjaxForm('#editForm', function(response)
|
|
{
|
|
if(response.result == 'success') location.reload()
|
|
});
|
|
}
|
|
else
|
|
{
|
|
$.setAjaxForm('#editForm',function(response)
|
|
{
|
|
if(response.result == 'success')
|
|
{
|
|
if(response.locate) $('#ajaxModal').attr('ref', response.locate);
|
|
$('#blockprofile').find('.refresh-panel').first().click();
|
|
$.reloadAjaxModal(0);
|
|
}
|
|
});
|
|
|
|
$('#submit').click(function()
|
|
{
|
|
var password1 = $('input#password1').val();
|
|
var passwordStrength = computePasswordStrength(password1);
|
|
|
|
if($("form input[name=passwordStrength]").length == 0) $('#submit').after("<input type='hidden' name='passwordStrength' value='0' />");
|
|
$("form input[name=passwordStrength]").val(passwordStrength);
|
|
});
|
|
}
|
|
});
|
|
|
|
/**
|
|
* Calculate the strength of password.
|
|
*
|
|
* @param {string} password
|
|
* @returns {number}
|
|
*/
|
|
function computePasswordStrength(password)
|
|
{
|
|
if(password.length == 0) return 0;
|
|
|
|
var strength = 0;
|
|
var uniqueChars = '';
|
|
var complexity = new Array();
|
|
for(i = 0; i < password.length; i++)
|
|
{
|
|
var letter = password.charAt(i);
|
|
var asc = letter.charCodeAt();
|
|
if(asc >= 48 && asc <= 57)
|
|
{
|
|
complexity[2] = 2;
|
|
}
|
|
else if((asc >= 65 && asc <= 90))
|
|
{
|
|
complexity[1] = 2;
|
|
}
|
|
else if(asc >= 97 && asc <= 122)
|
|
{
|
|
complexity[0] = 1;
|
|
}
|
|
else
|
|
{
|
|
complexity[3] = 3;
|
|
}
|
|
if(uniqueChars.indexOf(letter) == -1) uniqueChars += letter;
|
|
}
|
|
|
|
if(uniqueChars.length > 4) strength += uniqueChars.length - 4;
|
|
var sumComplexity = 0;
|
|
var complexitySize = 0;
|
|
for(i in complexity)
|
|
{
|
|
complexitySize += 1;
|
|
sumComplexity += complexity[i];
|
|
}
|
|
strength += sumComplexity + (2 * (complexitySize - 1));
|
|
if(password.length < 6 && strength >= 10) strength = 9;
|
|
|
|
strength = strength > 29 ? 29 : strength;
|
|
strength = Math.floor(strength / 10);
|
|
|
|
return strength;
|
|
}
|