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

package controllers import com.gu.pandomainauth.PanDomain import com.gu.pandomainauth.action.AuthActions import com.gu.pandomainauth.model.AuthenticatedUser import play.api.Logging import services.Permissions import play.api.mvc.{RequestHeader, Result} import play.api.mvc.Results.Forbidden trait PanDomainAuthActions extends AuthActions with Logging { override def validateUser(authedUser: AuthenticatedUser): Boolean = { val isValid = PanDomain.guardianValidation(authedUser) val canAccess = permissions.canAccess(authedUser) val canDeleteAtom = permissions.canDeleteAtom(authedUser) if (!isValid) { logger.warn(s"User ${authedUser.user.email} is not valid") } else if (!canAccess && !canDeleteAtom) { logger.warn(s"User ${authedUser.user.email} has no atom workshop permissions") } else if (!canAccess) { logger.warn(s"User ${authedUser.user.email} does not have atom_workshop_access permission") } isValid && canAccess } override def showUnauthedMessage(message: String)(implicit request: RequestHeader): Result = { Forbidden(views.html.authError(message)) } override def authCallbackUrl: String def permissions: Permissions }