class MethodPrivilegePointcutFilter implements PointcutFilterInterface (View source)

Pointcut filter which connects the method privileges to the AOP framework

Properties

protected PointcutFilterComposite[] $filters
protected array $methodPermissions
protected VariableFrontend $methodPermissionCache
protected ObjectManagerInterface $objectManager
protected RuntimeExpressionEvaluator $runtimeExpressionEvaluator

Methods

void
injectObjectManager(ObjectManagerInterface $objectManager)

This object is created very early so we can't rely on AOP for the property injection

void
initializeObject()

No description

bool
matches(string $className, string $methodName, string $methodDeclaringClassName, mixed $pointcutQueryIdentifier)

Checks if the specified class and method matches against the filter, i.e. if there is a policy entry to intercept this method.

bool
hasRuntimeEvaluationsDefinition()

Returns true if this filter holds runtime evaluations for a previously matched pointcut

array
getRuntimeEvaluationsDefinition()

Returns runtime evaluations for the pointcut.

reduceTargetClassNames(ClassNameIndex $classNameIndex)

This method is used to optimize the matching process.

getFilterEvaluator(string $className, string $methodName, string $methodDeclaringClassName, mixed $pointcutQueryIdentifier)

No description

void
buildPointcutFilters()

Builds the needed pointcut filters for matching the policy privileges

void
savePolicyCache()

Save the found matches to the cache.

Details

void injectObjectManager(ObjectManagerInterface $objectManager)

This object is created very early so we can't rely on AOP for the property injection

Parameters

ObjectManagerInterface $objectManager

Return Value

void

Exceptions

NoSuchCacheException

void initializeObject()

No description

Return Value

void

bool matches(string $className, string $methodName, string $methodDeclaringClassName, mixed $pointcutQueryIdentifier)

Checks if the specified class and method matches against the filter, i.e. if there is a policy entry to intercept this method.

This method also creates a cache entry for every method, to cache the associated roles and privileges.

Parameters

string $className

Name of the class to check against

string $methodName

Name of the method to check against

string $methodDeclaringClassName

Name of the class the method was originally declared in

mixed $pointcutQueryIdentifier

Some identifier for this query - must at least differ from a previous identifier. Used for circular reference detection.

Return Value

bool

true if the class / method match, otherwise false

bool hasRuntimeEvaluationsDefinition()

Returns true if this filter holds runtime evaluations for a previously matched pointcut

Return Value

bool

true if this filter has runtime evaluations

array getRuntimeEvaluationsDefinition()

Returns runtime evaluations for the pointcut.

Return Value

array

Runtime evaluations

ClassNameIndex reduceTargetClassNames(ClassNameIndex $classNameIndex)

This method is used to optimize the matching process.

Parameters

ClassNameIndex $classNameIndex

An index of class names

Return Value

ClassNameIndex

The filtered result, with pointcuts possibly covered by this filter

protected Closure getFilterEvaluator(string $className, string $methodName, string $methodDeclaringClassName, mixed $pointcutQueryIdentifier)

No description

Parameters

string $className
string $methodName
string $methodDeclaringClassName
mixed $pointcutQueryIdentifier

Return Value

Closure

protected void buildPointcutFilters()

Builds the needed pointcut filters for matching the policy privileges

Return Value

void

void savePolicyCache()

Save the found matches to the cache.

Return Value

void