Generalize some methods in AccountController and UserManagementController.

This commit is contained in:
takezoe
2013-07-10 20:44:28 +09:00
parent 7a3c61a8d0
commit 9d61f73e22
3 changed files with 21 additions and 28 deletions

View File

@@ -77,17 +77,10 @@ trait AccountControllerBase extends AccountManagementControllerBase with FlashMa
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 @@ trait AccountControllerBase extends AccountManagementControllerBase with FlashMa
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
}

View File

@@ -101,14 +101,21 @@ case class Context(path: String, loginAccount: Option[Account], currentUrl: Stri
*/
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))
}
}
}

View File

@@ -48,7 +48,7 @@ trait UserManagementControllerBase extends AccountManagementControllerBase {
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 @@ trait UserManagementControllerBase extends AccountManagementControllerBase {
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
})