Creation d'user OK (Validator+Persistence), bug sur la modification par contre

This commit is contained in:
Nicolas Michard
2008-02-04 23:59:42 +00:00
parent fe1e22f16d
commit dd9e8ec9a7
6 changed files with 63 additions and 27 deletions

View File

@@ -65,6 +65,8 @@ form.register.user.lastName=Last Name
form.register.user.organization=Organization
form.register.error.loginTooShort=Login must be at least 3 characters long
form.register.error.loginInvalid=The login can only contain characters, dot, underscore and must start with a character
form.register.error.emailEmpty=Email is required
form.register.error.emailInvalid=Syntax of email is invalid, minimize characters if necessary
form.register.error.passwordsDontMatches=The password doesn't match the confirmation
form.register.error.firstNameEmpty=First name is required
form.register.error.lastNameEmpty=Last name is required

View File

@@ -4,19 +4,19 @@
<head></head>
<body>
<h2><fmt:message key="register.title" /></h2>
<h1><fmt:message key="register.title" /></h1>
<form:form method="post" commandName="registerUser">
<form:hidden path="isNew"/>
<form:label path="login"><fmt:message key="form.register.user.login" /></form:label> <form:input path="login"/> <br/><br />
<form:label path="email"><fmt:message key="form.register.user.email" /></form:label> <form:input path="email"/> <br/><br />
<form:label path="login"><fmt:message key="form.register.user.login" /></form:label> <form:input path="login"/> <span class="formError"><form:errors path="login" /></span><br/><br />
<form:label path="email"><fmt:message key="form.register.user.email" /></form:label> <form:input path="email"/> <span class="formError"><form:errors path="email" /></span><br/><br />
<form:label path="password"><fmt:message key="form.register.user.password" /></form:label> <form:password path="password"/> <br/><br />
<form:label path="passwordConfirm"><fmt:message key="form.register.user.passwordConfirm" /></form:label> <form:password path="passwordConfirm"/> <br/><br />
<form:label path="password"><fmt:message key="form.register.user.password" /></form:label> <form:password path="password"/> <span class="formError"><form:errors path="password" /></span><br/><br />
<form:label path="passwordConfirm"><fmt:message key="form.register.user.passwordConfirm" /></form:label> <form:password path="passwordConfirm"/><br/><br />
<form:label path="firstName"><fmt:message key="form.register.user.firstName" /></form:label> <form:input path="firstName"/> <br/><br />
<form:label path="lastName"><fmt:message key="form.register.user.lastName" /></form:label> <form:input path="lastName"/> <br/><br />
<form:label path="organization"><fmt:message key="form.register.user.organization" /></form:label> <form:input path="organization"/> <br/><br />
<form:label path="firstName"><fmt:message key="form.register.user.firstName" /></form:label> <form:input path="firstName"/> <span class="formError"><form:errors path="firstName" /></span><br/><br />
<form:label path="lastName"><fmt:message key="form.register.user.lastName" /></form:label> <form:input path="lastName"/> <span class="formError"><form:errors path="lastName" /></span><br/><br />
<form:label path="organization"><fmt:message key="form.register.user.organization" /></form:label> <form:input path="organization"/> <span class="formError"><form:errors path="organization" /></span><br/><br />
<input type="reset" value="<fmt:message key="button.reset" />"/>

View File

@@ -88,6 +88,11 @@
<property name="formView" value="registerUser" />
<property name="successView" value="listArticle.htm" />
<property name="userManager" ref="userManager" />
<property name="validator" ref="UserValidator"/>
</bean>
<bean id="UserValidator"
class="org.yacos.web.system.validation.UserValidator">
</bean>
<bean id="SArticleController"
@@ -175,7 +180,6 @@
<bean id="CreateReportController"
class="org.yacos.web.PCmember.controller.CreateReportController">
<property name="articleManager" ref="articleManager" />
</bean>

View File

@@ -4,11 +4,11 @@
<head></head>
<body>
<form action="<c:url value='j_acegi_security_check'/>" method="POST" id="formlogin">
<form action="<c:url value='j_acegi_security_check'/>" method="POST" id="mainformlogin">
<a href="login.htm" id="connexion"><fmt:message key="login.label.connexion"/> :</a>
<input type='text' name='j_username' value="<fmt:message key='login.field.login' />" onfocus="if (this.value == '<fmt:message key='login.field.login' />') { this.value = ''; }" onblur="if (this.value == '') { this.value = '<fmt:message key='login.field.login' />'; }" />
<input type='password' name='j_password' />
<a href="javascript:document.getElementById('formlogin').submit();" id="submit_btn"><fmt:message key="login.btn.submit" /></a>
<a href="javascript:document.getElementById('mainformlogin').submit();" id="submit_btn"><fmt:message key="login.btn.submit" /></a>
</form>
</body>

View File

@@ -21,8 +21,13 @@ body {
position: relative;
}
.errorMessage {
color:red;
.login_error {
color: #ff0000;
font-size: 10px;
}
.formError{
color: #ff0000;
font-size: 10px;
}

View File

@@ -20,8 +20,9 @@ public class UserValidator implements Validator {
/**
* @see org.springframework.validation.Validator#supports(java.lang.Class)
*/
@SuppressWarnings("unchecked")
public boolean supports(Class commandClass) {
return FormUser.class.equals(commandClass);
return commandClass.isAssignableFrom(FormUser.class);
}
/**
@@ -30,23 +31,47 @@ public class UserValidator implements Validator {
public void validate(Object commandObject, Errors errors) {
FormUser userCommand = (FormUser) commandObject;
// User login
Pattern loginPattern = Pattern.compile("^[a-zA-Z][a-zA-Z0-9\\._-]+$");
Matcher loginMatcher = loginPattern.matcher(userCommand.getLogin());
if(loginMatcher.matches()){
errors.rejectValue("login", "form.register.error.loginInvalid");
}
if(userCommand.getLogin().length()<3){
errors.rejectValue("login", "form.register.error.loginTooShort");
validateLogin(userCommand.getLogin(), errors);
validateEmail(userCommand.getEmail(), errors);
validatePassword(userCommand, errors);
// FIRSTNAME & LASTNAME VALIDATOR
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "firstName", "form.register.error.firstNameEmpty");
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "lastName", "form.register.error.lastNameEmpty");
}
ValidationUtils.rejectIfEmptyOrWhitespace(errors, userCommand.getPassword(), "form.register.error.passwordEmpty");
// PASSWORD VALIDATOR
public void validatePassword(FormUser userCommand, Errors errors){
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "password", "form.register.error.passwordEmpty");
if(userCommand.passwordWasModified() && (! userCommand.passwordsMatches())){
errors.rejectValue("password", "form.register.error.passwordsDontMatches");
}
}
ValidationUtils.rejectIfEmptyOrWhitespace(errors, userCommand.getFirstName(), "form.register.error.firstNameEmpty");
ValidationUtils.rejectIfEmptyOrWhitespace(errors, userCommand.getLastName(), "form.register.error.lastNameEmpty");
// EMAIL VALIDATOR
public void validateEmail(String email, Errors errors){
Pattern emailPattern = Pattern.compile("^[a-z0-9._-]+@[a-z0-9._-]{2,}[.][a-z]{2,4}$"); // Regex
Matcher emailMatcher = emailPattern.matcher(email);
if(!emailMatcher.matches()){
errors.rejectValue("email", "form.register.error.emailInvalid");
}
ValidationUtils.rejectIfEmpty(errors, "email", "form.register.error.emailEmpty");
}
// LOGIN VALIDATOR
public void validateLogin(String login, Errors errors){
// 3 caractere mini, commence par un caractere
Pattern loginPattern = Pattern.compile("^[a-zA-Z][a-zA-Z0-9._-]+$"); //Regex
Matcher loginMatcher = loginPattern.matcher(login);
if(!loginMatcher.matches()){
errors.rejectValue("login", "form.register.error.loginInvalid");
}
if(login.length()<3){
errors.rejectValue("login", "form.register.error.loginTooShort");
}
}
}