diff --git a/src/main/scala/app/AccountController.scala b/src/main/scala/app/AccountController.scala index 90bbc70..ab77092 100644 --- a/src/main/scala/app/AccountController.scala +++ b/src/main/scala/app/AccountController.scala @@ -16,7 +16,7 @@ case class AccountEditForm(password: Option[String], mailAddress: String, url: Option[String]) val newForm = mapping( - "userName" -> trim(label("User name" , text(required, maxlength(100)))), + "userName" -> trim(label("User name" , text(required, maxlength(100), identifier, unique))), "password" -> trim(label("Password" , text(required, maxlength(20)))), "mailAddress" -> trim(label("Mail Address" , text(required, maxlength(100)))), "url" -> trim(label("URL" , optional(text(maxlength(200))))) @@ -66,4 +66,10 @@ redirect("/signin") } else NotFound } + + private def unique: Constraint = new Constraint(){ + def validate(name: String, value: String): Option[String] = + getAccountByUserName(value).map { _ => "User already exists." } + } + } diff --git a/src/main/twirl/account/useredit.scala.html b/src/main/twirl/account/useredit.scala.html index 2c97247..4b8bf47 100644 --- a/src/main/twirl/account/useredit.scala.html +++ b/src/main/twirl/account/useredit.scala.html @@ -18,7 +18,7 @@