app/controllers/PanDomainAuthActions.scala (33 lines of code) (raw):

package controllers import com.gu.pandahmac.HMACAuthActions import com.gu.pandomainauth.PanDomain import com.gu.pandomainauth.model.AuthenticatedUser import services.Config import permissions.Permissions import play.api.Logging import play.api.mvc.{RequestHeader, Result} import play.api.mvc.Results.Forbidden trait PanDomainAuthActions extends HMACAuthActions with Logging { private def noPermissionMessage(authedUser: AuthenticatedUser): String = s"user ${authedUser.user.email} does not have ${Permissions.TagManagerAccess.name} permission" override def validateUser(authedUser: AuthenticatedUser): Boolean = { val isValid = PanDomain.guardianValidation(authedUser) val canAccess = Permissions.testUser(Permissions.TagManagerAccess)(authedUser.user.email) if (!isValid) { logger.warn(s"User ${authedUser.user.email} is not valid") } else if (!canAccess) { logger.warn(noPermissionMessage(authedUser)) } isValid && canAccess } override def showUnauthedMessage(message: String)(implicit request: RequestHeader): Result = Forbidden(views.html.Application.authError(message)) override def invalidUserMessage(claimedAuth: AuthenticatedUser): String = { val hasAccess = Permissions.testUser(Permissions.TagManagerAccess)(claimedAuth.user.email) if (!hasAccess) noPermissionMessage(claimedAuth) else super.invalidUserMessage(claimedAuth) } override def cacheValidation = true override def authCallbackUrl: String = Config().pandaAuthCallback override lazy val secret: String = Config().hmacSecret }