diff --git a/app/controllers/GroupController.scala b/app/controllers/GroupController.scala index 5329de315..abb43306e 100644 --- a/app/controllers/GroupController.scala +++ b/app/controllers/GroupController.scala @@ -83,7 +83,7 @@ case class GroupController @Inject() ( }, data => userService - .byEmailFuture(data.email) + .byEmailFuture(data.email, includeDisabled = true) .zip(userService.byGroupIdsFuture(List(groupId), includeDisabled = true)) .flatMap { case (None, _) => diff --git a/app/services/UserService.scala b/app/services/UserService.scala index 01848876b..1046c3bc7 100644 --- a/app/services/UserService.scala +++ b/app/services/UserService.scala @@ -168,17 +168,24 @@ class UserService @Inject() ( .as(simpleUser.singleOpt) }.map(_.toUser) - def byEmail(email: String): Option[User] = + def byEmail(email: String, includeDisabled: Boolean = false): Option[User] = db.withConnection { implicit connection => + val disabledSQL: String = if (includeDisabled) { + "" + } else { + " AND disabled = false" + } SQL(s"""SELECT $fieldsInSelect FROM "user" WHERE lower(email) = {email} - AND disabled = false""") + $disabledSQL""") .on("email" -> email.toLowerCase) .as(simpleUser.singleOpt) }.map(_.toUser) - def byEmailFuture(email: String): Future[Option[User]] = Future(byEmail(email)) + def byEmailFuture(email: String, includeDisabled: Boolean = false): Future[Option[User]] = Future( + byEmail(email, includeDisabled) + ) def byEmails(emails: List[String]): List[User] = { val lowerCaseEmails = emails.map(_.toLowerCase).distinct