abstract class NodeRelationshipFilterEntry(val subFilterDefinition: NodeSubFilterDefinition, val filter: NodeSubFilter, val permission: Permission?) : FilterEntry

FilterEntry used to filter when the entry is a set can be used for filters where either all, any or none of the elements of the set have to match a filter Automatically includes a condition which checks that the filter does not include any nodes which the provided Permission (if provided) does not allow to access. This prevents information leakage using filters. Without this, it would be possible to get information of related nodes by brute-forcing different filters (e.g. getting one character of a name at a time by checking if the related node is still returned).

Parameters

subFilterDefinition

associated definition of the entry

filter

filter to filter the elements of the set

permission

the current read permission, used to only consider nodes in filters which match the permission

Inheritors

Constructors

Link copied to clipboard
constructor(subFilterDefinition: NodeSubFilterDefinition, filter: NodeSubFilter, permission: Permission?)

Properties

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
private val permission: Permission?
Link copied to clipboard

Functions

Link copied to clipboard
open override fun generateCondition(node: Node): Condition

Creates the condition

Link copied to clipboard
abstract fun generatePredicate(variable: SymbolicName): OngoingListBasedPredicateFunction

Generates the predicate which defines how nodes of the set have to match the filter, so that the overall filter evaluates to true Examples include all, any and none