diff --git a/src/main/scala/app/AccountController.scala b/src/main/scala/app/AccountController.scala index bc0700b..17fca02 100644 --- a/src/main/scala/app/AccountController.scala +++ b/src/main/scala/app/AccountController.scala @@ -77,17 +77,10 @@ mailAddress = form.mailAddress, url = form.url)) - if(form.clearImage){ - account.image.map { image => - new java.io.File(getUserUploadDir(userName), image).delete() - updateAvatarImage(userName, None) - } - } else { - updateImage(userName, form.fileId) - } - + updateImage(userName, form.fileId, form.clearImage) flash += "info" -> "Account information has been updated." redirect("/%s/_edit".format(userName)) + } getOrElse NotFound }) @@ -100,7 +93,7 @@ post("/register", newForm){ form => if(loadSystemSettings().allowAccountRegistration){ createAccount(form.userName, encrypt(form.password), form.mailAddress, false, form.url) - updateImage(form.userName, form.fileId) + updateImage(form.userName, form.fileId, false) redirect("/signin") } else NotFound } diff --git a/src/main/scala/app/ControllerBase.scala b/src/main/scala/app/ControllerBase.scala index 922105e..a22d6cc 100644 --- a/src/main/scala/app/ControllerBase.scala +++ b/src/main/scala/app/ControllerBase.scala @@ -101,14 +101,21 @@ */ trait AccountManagementControllerBase extends ControllerBase { self: AccountService => - protected def updateImage(userName: String, fileId: Option[String]): Unit = { - fileId.map { fileId => - val filename = "avatar." + FileUtil.getExtension(FileUploadUtil.getUploadedFilename(fileId).get) - FileUtils.moveFile( - FileUploadUtil.getTemporaryFile(fileId), - new java.io.File(getUserUploadDir(userName), filename) - ) - updateAvatarImage(userName, Some(filename)) + protected def updateImage(userName: String, fileId: Option[String], clearImage: Boolean): Unit = { + if(clearImage){ + getAccountByUserName(userName).flatMap(_.image).map { image => + new java.io.File(getUserUploadDir(userName), image).delete() + updateAvatarImage(userName, None) + } + } else { + fileId.map { fileId => + val filename = "avatar." + FileUtil.getExtension(FileUploadUtil.getUploadedFilename(fileId).get) + FileUtils.moveFile( + FileUploadUtil.getTemporaryFile(fileId), + new java.io.File(getUserUploadDir(userName), filename) + ) + updateAvatarImage(userName, Some(filename)) + } } } diff --git a/src/main/scala/app/UserManagementController.scala b/src/main/scala/app/UserManagementController.scala index 7ec77a7..d21308a 100644 --- a/src/main/scala/app/UserManagementController.scala +++ b/src/main/scala/app/UserManagementController.scala @@ -48,7 +48,7 @@ post("/admin/users/_new", newForm)(adminOnly { form => createAccount(form.userName, encrypt(form.password), form.mailAddress, form.isAdmin, form.url) - updateImage(form.userName, form.fileId) + updateImage(form.userName, form.fileId, false) redirect("/admin/users") }) @@ -66,16 +66,9 @@ isAdmin = form.isAdmin, url = form.url)) - if(form.clearImage){ - account.image.map { image => - new java.io.File(getUserUploadDir(userName), image).delete() - updateAvatarImage(userName, None) - } - } else { - updateImage(userName, form.fileId) - } - + updateImage(userName, form.fileId, form.clearImage) redirect("/admin/users") + } getOrElse NotFound })