hq/app/controllers/AuthController.scala (25 lines of code) (raw):
package controllers
import auth.SecurityHQAuthActions
import com.gu.googleauth.GoogleAuthConfig
import play.api.libs.ws.WSClient
import play.api.mvc._
import play.api.{Configuration, Environment, Mode}
import scala.concurrent.ExecutionContext
class AuthController(environment: Environment, val config: Configuration, val authConfig: GoogleAuthConfig)
(implicit val ec: ExecutionContext, val wsClient: WSClient, val bodyParser: BodyParser[AnyContent], val controllerComponents: ControllerComponents, val assetsFinder: AssetsFinder)
extends BaseController with SecurityHQAuthActions {
implicit val mode: Mode = environment.mode
def loginError = Action { implicit request =>
val error = request.flash.get("error").getOrElse("There was an error logging in")
Ok(views.html.loginError(error))
}
def login = Action.async { implicit request =>
startGoogleLogin()
}
def logout = Action { implicit request =>
Redirect(routes.HQController.index).withNewSession
}
def oauthCallback = Action.async { implicit request =>
processOauth2Callback(requiredGoogleGroups, googleGroupChecker)
}
}