diff --git a/src/main/scala/app/UsersController.scala b/src/main/scala/app/UsersController.scala index 5980599..6daaf55 100644 --- a/src/main/scala/app/UsersController.scala +++ b/src/main/scala/app/UsersController.scala @@ -55,7 +55,14 @@ } post("/admin/users/:name/_edit", editForm){ form => - // TODO Update Account + val userName = params("userName") + val currentDate = new java.sql.Date(System.currentTimeMillis) + updateAccount(getAccountByUserName(userName).get.copy( + password = form.password, + mailAddress = form.mailAddress, + userType = form.userType, + url = form.url, + updatedDate = currentDate)) redirect("/admin/users") } diff --git a/src/main/scala/service/AccountService.scala b/src/main/scala/service/AccountService.scala index f3321e2..722b7df 100644 --- a/src/main/scala/service/AccountService.scala +++ b/src/main/scala/service/AccountService.scala @@ -6,14 +6,28 @@ trait AccountService { - def getAccountByUserName(userName: String): Option[Account] = + def getAccountByUserName(userName: String): Option[Account] = Query(Accounts) filter(_.userName is userName.bind) firstOption - def getAllUsers(): List[Account] = - Query(Accounts) sortBy(_.userName) list + def getAllUsers(): List[Account] = Query(Accounts) sortBy(_.userName) list def createAccount(account: Account): Unit = Accounts.* insert account + def updateAccount(account: Account): Unit = { + val q = for { + a <- Accounts if a.userName is account.userName.bind + } yield a.password ~ a.mailAddress ~ a.userType ~ a.url.? ~ a.registeredDate ~ a.updatedDate ~ a.lastLoginDate.? + + q.update( + account.password, + account.mailAddress, + account.userType, + account.url, + account.registeredDate, + account.updatedDate, + account.lastLoginDate) + } + } object AccountService {