diff --git a/src/main/scala/service/AccountService.scala b/src/main/scala/service/AccountService.scala index d1c4d3f..7979fa2 100644 --- a/src/main/scala/service/AccountService.scala +++ b/src/main/scala/service/AccountService.scala @@ -40,7 +40,7 @@ // Create or update account by LDAP information getAccountByUserName(ldapUserInfo.userName, true) match { case Some(x) if(!x.isRemoved) => { - updateAccount(x.copy(userName = ldapUserInfo.userName, mailAddress = ldapUserInfo.mailAddress, fullName = ldapUserInfo.fullName)) + updateAccount(x.copy(mailAddress = ldapUserInfo.mailAddress, fullName = ldapUserInfo.fullName)) getAccountByUserName(ldapUserInfo.userName) } case Some(x) if(x.isRemoved) => { @@ -49,7 +49,7 @@ } case None => getAccountByMailAddress(ldapUserInfo.mailAddress, true) match { case Some(x) if(!x.isRemoved) => { - updateAccount(x.copy(userName = ldapUserInfo.userName, fullName = ldapUserInfo.fullName)) + updateAccountByMailAddress(x.copy(userName = ldapUserInfo.userName, fullName = ldapUserInfo.fullName)) getAccountByUserName(ldapUserInfo.userName) } case Some(x) if(x.isRemoved) => { @@ -113,6 +113,21 @@ account.lastLoginDate, account.isRemoved) + def updateAccountByMailAddress(account: Account): Unit = + Accounts + .filter { a => a.mailAddress is account.mailAddress.bind } + .map { a => a.userName ~ a.password ~ a.fullName ~ a.isAdmin ~ a.url.? ~ a.registeredDate ~ a.updatedDate ~ a.lastLoginDate.? ~ a.removed } + .update ( + account.userName, + account.password, + account.fullName, + account.isAdmin, + account.url, + account.registeredDate, + currentDate, + account.lastLoginDate, + account.isRemoved) + def updateAvatarImage(userName: String, image: Option[String]): Unit = Accounts.filter(_.userName is userName.bind).map(_.image.?).update(image)