def check()

in app/util/Acl.scala [102:137]


  def check(
      hasCommercialPermissions: Authorization,
      hasEditorialPermissions: Authorization,
      hasTrainingPermissions: Authorization,
      hasEmailPermissions: Authorization,
      priorities: Set[PermissionsPriority]
  ): Authorization = {

    val trainingPermissionIsValid = priorities.contains(TrainingPermission)
    val editorialPermissionIsValid = priorities.contains(
      EditorialPermission
    ) || priorities.contains(EmailPermission)
    val commercialPermissionIsValid = priorities.contains(CommercialPermission)
    val emailPermissionIsValid = priorities.contains(EmailPermission)

    if (trainingPermissionIsValid)
      hasTrainingPermissions
    else {
      if (editorialPermissionIsValid && commercialPermissionIsValid) {
        if (
          List(hasCommercialPermissions, hasEditorialPermissions).contains(
            AccessGranted
          )
        ) {
          AccessGranted
        } else
          AccessDenied
      } else if (commercialPermissionIsValid) {
        hasCommercialPermissions
      } else if (editorialPermissionIsValid)
        hasEditorialPermissions
      else if (emailPermissionIsValid) {
        hasEmailPermissions
      } else AccessDenied
    }
  }