Change username regulars expression - Allow usernames that start with character or digit, Change error messages

This commit is contained in:
Sofia Baltzi 2018-04-05 22:34:36 +00:00
parent d4554e7296
commit 56e1b3f7d2
3 changed files with 30 additions and 30 deletions

View File

@ -1,6 +1,7 @@
package eu.dnetlib.openaire.usermanagement;
import eu.dnetlib.openaire.user.utils.EmailSender;
import org.apache.commons.validator.routines.EmailValidator;
import eu.dnetlib.openaire.user.utils.LDAPActions;
import eu.dnetlib.openaire.user.utils.VerificationActions;
import eu.dnetlib.openaire.usermanagement.utils.UrlConstructor;
@ -64,7 +65,7 @@ public class RegisterServlet extends HttpServlet {
try {
if (username.matches("^[a-zA-Z0-9\\.\\_\\-]{4,150}") && !ldapActions.usernameExists(username) && !ldapActions.emailExists(email)
&& !ldapActions.isZombieUsersEmail(email) && !ldapActions.isZombieUsersUsername(username)) {
&& !ldapActions.isZombieUsersEmail(email) && !ldapActions.isZombieUsersUsername(username) && EmailValidator.getInstance().isValid(email)) {
ldapActions.createZombieUser(username, email, firstName, lastName, organization, password);
logger.info("Zombie user successfully created");
@ -115,9 +116,15 @@ public class RegisterServlet extends HttpServlet {
}
if (!username.matches("^[a-zA-Z0-9\\.\\_\\-]")) {
request.getSession().setAttribute("username_allowed_message", "You can use only letters, numbers, underscores, hyphens and periods.");
request.getSession().setAttribute("username_allowed_chars_message", "You can use letters, numbers, underscores, hyphens and periods.");
logger.info("Only letters, numbers, underscores, hyphens and periods.");
}
if (!username.matches("^[a-zA-Z0-9].*")) {
request.getSession().setAttribute("username_first_char_message", "The username must start with letter or digit.");
logger.info("The username must start with letter or digit.");
}
}
if (ldapActions.usernameExists(username) || ldapActions.isZombieUsersUsername(username)) {
@ -130,6 +137,11 @@ public class RegisterServlet extends HttpServlet {
logger.info("There is another user with this email");
}
if (!EmailValidator.getInstance().isValid(email)) {
request.getSession().setAttribute("email_message", "Please enter a valid email.");
logger.info("Invalid email.");
}
if (ldapActions.isZombieUsersEmail(email)) {
request.getSession().setAttribute("email_message", "You have already registered with this email address! Please check your email to activate your account or contact OpenAIRE <a href=\"https://www.openaire.eu/support/helpdesk\">helpdesk</a>.");
logger.info("There is another user with this email");

View File

@ -1,12 +1,10 @@
function validateForm() {
var username = $("#username").val();
var email = $("#email").val();
var email_conf = $("#email_conf").val();
var password = $("#password").val();
var password_conf = $("#password_conf").val();
var isValidUsername = validateUsername(username);
var isValidEmail = validateEmail(email);
var isValidPassword = validatePassword(password);
var hasError = false;
@ -61,19 +59,6 @@ function validateForm() {
}
}
// If username is filled
if (isUsernameFilled) {
// Check if username is valid
if (!isValidUsername) {
$("#username").addClass('uk-input aai-form-danger');
$(".msg_username_allowed_characters").show();
hasError = true;
} else {
$(".msg_username_allowed_characters").hide();
$("#username").removeClass('aai-form-danger');
}
}
if($("#verification_code").val() != undefined) {
if($.trim($("#verification_code").val()).length <= 0) {
$("#verification_code").addClass('uk-input aai-form-danger');
@ -173,11 +158,6 @@ function validateForm() {
return !hasError;
}
function validateUsername(username) {
var re = /^[a-zA-Z0-9._-]{4,150}$/;
return re.test(username);
}
function validateEmail(email) {
var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return re.test(email);

View File

@ -75,11 +75,15 @@
<div class="form-group">
<span class="msg_username_min_lenght uk-text-danger uk-text-small uk-float-left" style="display:none">Minimum username length 5 characters.</span>
<span class="msg_username_max_lenght uk-text-danger uk-text-small uk-float-left" style="display:none">Maximum username length 150 characters.</span>
<span class="msg_username_allowed_characters uk-text-danger uk-text-small uk-float-left" style="display:none">You can use only letters, numbers, underscores, hyphens and periods.</span>
<span class="msg_username_start uk-text-danger uk-text-small uk-float-left" style="display:none">The username must start with letter or digit.</span>
<span class="msg_username_allowed_characters uk-text-danger uk-text-small uk-float-left" style="display:none">You can use letters, numbers, underscores, hyphens and periods.</span>
<span class="msg_username_error uk-text-danger uk-text-small uk-float-left" style="display:none">Please enter your username.</span>
<span id="username_server_error" class="uk-text-danger uk-text-small uk-float-left">${username_message}</span>
<span id="username_allowed_server_error" class="uk-text-danger uk-text-small uk-float-left">${username_allowed_message}</span>
<span id="username_allowed_chars_server_error" class="uk-text-danger uk-text-small uk-float-left">${username_allowed_chars_message}</span>
<span id="username_first_char_server_error" class="uk-text-danger uk-text-small uk-float-left">${username_first_char_message}</span>
<c:remove var="username_message" scope="session" />
<c:remove var="username_allowed_chars_message" scope="session" />
<c:remove var="username_first_char_message" scope="session" />
<input id="username" name="username" type="text" placeholder="Username (*)" class="form-control" value=${username}></div>
<c:remove var="username" scope="session" />
<div class="form-group">
@ -180,16 +184,20 @@
} else {
$(".msg_username_max_lenght").fadeIn();
}
var allowedChars = /^[a-zA-Z0-9._-]{4,150}$/;
var allowedChars = /^[a-zA-Z0-9._-]*$/;
if (usernameInput.value.match(allowedChars)) {
$(".msg_username_allowed_characters").fadeOut();
} else {
$(".msg_username_allowed_characters").fadeIn();
}
var startsWith = /^[a-zA-Z0-9].*/;
if (usernameInput.value.match(startsWith)) {
$(".msg_username_start").fadeOut();
} else {
$(".msg_username_start").fadeIn();
}
}
// myEmailInput.onfocusOut = function() {
//
// }
$("#first_name").focusin(function () {
$(this).removeClass('aai-form-danger');
@ -205,8 +213,8 @@
$(this).removeClass('aai-form-danger');
$(".msg_username_error").fadeOut();
$("#username_server_error").fadeOut();
$("#username_allowed_server_error").fadeOut();
$("#username_allowed_chars_server_error").fadeOut();
$("#username_first_char_server_error").fadeOut();
});
$("#email").focusin(function () {