app/auth/PanDomainAuthActions.scala (28 lines of code) (raw):

package auth import com.gu.pandomainauth.PanDomain import com.gu.pandomainauth.action.AuthActions import com.gu.pandomainauth.model.AuthenticatedUser import com.gu.permissions.PermissionsProvider import config.AppConfig import helpers.Loggable import permissions.Permissions import play.api.mvc.{RequestHeader, Result, Results} trait PanDomainAuthActions extends AuthActions with Loggable { def config: AppConfig def permissions: PermissionsProvider override def validateUser(authedUser: AuthenticatedUser): Boolean = { val isValid = PanDomain.guardianValidation(authedUser) val hasRestorerAccess = permissions.hasPermission(Permissions.RestorerAccess, authedUser.user.email) if (!isValid) { logger.warn(s"User ${authedUser.user.email} failed validation") } if (!hasRestorerAccess) { logger.warn(s"User ${authedUser.user.email} doesn't have 'restorer_access' permission.") } isValid && hasRestorerAccess } override def showUnauthedMessage(message: String)(implicit request: RequestHeader): Result = { Results.Redirect(controllers.routes.Login.authError(message)) } override def authCallbackUrl: String = config.hostName + "/oauthCallback" }