Skip to content

Instantly share code, notes, and snippets.

@lforite
Created October 22, 2021 07:45
Show Gist options
  • Save lforite/67c40d1dbea215ff9924af8ba14d03f8 to your computer and use it in GitHub Desktop.
Save lforite/67c40d1dbea215ff9924af8ba14d03f8 to your computer and use it in GitHub Desktop.
case class HasPermission(permission: String) extends AuthorizationPredicate {
override def evaluate(token: Token): Boolean = token.permissions.contains(permission)
}
case class HasPermissions(permissions: List[String]) extends AuthorizationPredicate {
override def evaluate(token: Token): Boolean = permission.forall(token.permissions.contains)
}
case class HasClient(clientId: UUID) extends AuthorizationPredicate {
override def evaluate(token: Token): Boolean = token.clientId == clientId
}
case class HasProject(projectId: UUID) extends AuthorizationPredicate {
override def evaluate(token: Token): Boolean = token.projects.contains(projectId)
}
case class HasProjects(projectIds: List[UUID]) extends AuthorizationPredicate {
override def evaluate(token: Token): Boolean = projectIds.forall(token.projects.contains)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment