Fix validation for user name, page name and repository name.

This commit is contained in:
takezoe
2013-06-21 18:56:00 +09:00
parent b20f85e21c
commit 4d4e0c8487
5 changed files with 26 additions and 55 deletions

View File

@@ -12,7 +12,7 @@ trait UsersControllerBase extends ControllerBase { self: AccountService with Adm
case class UserForm(userName: String, password: String, mailAddress: String, isAdmin: Boolean, url: Option[String])
val newForm = mapping(
"userName" -> trim(label("Username" , text(required, maxlength(100), username, unique))),
"userName" -> trim(label("Username" , text(required, maxlength(100), identifier, unique))),
"password" -> trim(label("Password" , text(required, maxlength(100)))),
"mailAddress" -> trim(label("Mail Address" , text(required, maxlength(100)))),
"isAdmin" -> trim(label("User Type" , boolean())),
@@ -20,7 +20,7 @@ trait UsersControllerBase extends ControllerBase { self: AccountService with Adm
)(UserForm.apply)
val editForm = mapping(
"userName" -> trim(label("Username" , text(required, maxlength(100), username))),
"userName" -> trim(label("Username" , text(required, maxlength(100), identifier))),
"password" -> trim(label("Password" , text(required, maxlength(100)))),
"mailAddress" -> trim(label("Mail Address" , text(required, maxlength(100)))),
"isAdmin" -> trim(label("User Type" , boolean())),
@@ -68,17 +68,6 @@ trait UsersControllerBase extends ControllerBase { self: AccountService with Adm
redirect("/admin/users")
})
private def username: Constraint = new Constraint(){
def validate(name: String, value: String): Option[String] =
if(!value.matches("^[a-zA-Z0-9\\-_]+$")){
Some("Username contains invalid character.")
} else if(value.startsWith("_") || value.startsWith("-")){
Some("Username starts with invalid character.")
} else {
None
}
}
private def unique: Constraint = new Constraint(){
def validate(name: String, value: String): Option[String] =
getAccountByUserName(value).map { _ => "User already exists." }