in play-v30/src/main/scala/com/gu/googleauth/actions.scala [157:172]
def enforceGoogleGroups(userIdentity: UserIdentity, requiredGoogleGroups: Set[String], googleGroupChecker: GoogleGroupChecker, errorMessage: String = "Login failure. You do not belong to the required Google groups")
(implicit request: RequestHeader, ec: ExecutionContext): EitherT[Future, Result, Unit] = {
googleGroupChecker.retrieveGroupsFor(userIdentity.email).attemptT
.leftMap { t =>
logger.warn("Login failure, Could not look up user's Google groups", t)
redirectWithError(failureRedirectTarget, "Login failure. Unable to look up Google Group membership")
}
.subflatMap { userGroups =>
if (Actions.checkGoogleGroups(userGroups, requiredGoogleGroups)) {
Right(())
} else {
logger.info("Login failure, user not in required Google groups")
Left(redirectWithError(failureRedirectTarget, errorMessage))
}
}
}