@ExperimentalApi
@ParametersAreNonnullByDefault
public interface OperationService
Modifier and Type | Method and Description |
---|---|
@NonNull Map<Target,ValidationResult> |
canPerform(Person person,
Operation operation,
Iterable<Target> targets)
Check whether the specified Person can perform a particular operation on each of the specified targets.
|
@NonNull ValidationResult |
canPerform(Person person,
Operation operation,
Target target)
Check whether a person can perform a particular operation on a particular target.
|
@NonNull Map<Target,ValidationResult> |
canPerformWithoutExemptions(Person person,
Operation operation,
Iterable<Target> targets)
Check whether the specified Person can perform a particular operation on each of the specified targets.
|
@NonNull ValidationResult |
canPerformWithoutExemptions(Person person,
Operation operation,
Target target)
Check whether a person can perform a particular operation on a particular target.
|
@NonNull List<OperationDescription> |
getAllOperationsForType(TargetType targetType)
For a given target type, list all operations this service can provide information about.
|
@NonNull List<OperationCheckResult> |
getAvailableOperations(Person person,
Target target)
List all operations that a person can perform on a particular target.
|
@NonNull List<OperationCheckResult> |
getAvailableOperations(Target target)
List all operations that the current user can perform on a particular target.
|
<T> T |
withExemption(Supplier<T> task)
Execute the given task with permission exemption.
|
@NonNull List<OperationDescription> getAllOperationsForType(TargetType targetType)
BadRequestException
- if targetType is nullPermissionException
- if targetType is
unknown (e.g. for custom types for which no
OperationDelegate
s are registered)@NonNull List<OperationCheckResult> getAvailableOperations(Person person, Target target)
person
- the Person on which to perform a permission and validation checktarget
- the Target to check permission forcanPerform(Person, Operation, Target)
would return a valid and authorized
result.BadRequestException
- if person or target is nullNotFoundException
- if target doesn't existPermissionException
- if targetType is
unknown (e.g. for custom types for which no
OperationDelegate
s are registered)@NonNull List<OperationCheckResult> getAvailableOperations(Target target)
target
- the Target to check permission forcanPerform(Person, Operation, Target)
would return a valid and authorized
result.BadRequestException
- if target is nullNotFoundException
- if target doesn't existPermissionException
- if targetType is
unknown (e.g. for custom types for which no
OperationDelegate
s are registered)@NonNull ValidationResult canPerform(Person person, Operation operation, Target target)
person
- the Person on which to perform a permission and validation checkoperation
- the operation to check permission fortarget
- the Target to check permission forBadRequestException
- if person, operation or target is
null, or if target points to the wrong kind of object for this operation check.@NonNull ValidationResult canPerformWithoutExemptions(Person person, Operation operation, Target target)
This check doesn't grant permission exemptions when called using #withExemption(Runnable)
.
person
- the Person on which to perform a permission and validation checkoperation
- the operation to check permission fortarget
- the Target to check permission forBadRequestException
- if person, operation or target is
null, or if target points to the wrong kind of object for this operation check.@NonNull Map<Target,ValidationResult> canPerform(Person person, Operation operation, Iterable<Target> targets)
canPerform(Person, Operation, Target)
.)person
- the Person on which to perform a permission and validation checkoperation
- the operation to check permission fortargets
- the Targets to individually check permission for; at least one target is required;
must all be of the same TargetType
ValidationResult
for each of the supplied targets. Results for each target will
be as follows:
BadRequestException
- if any of the parameters are null,
or if targets is empty, contains null targets or mixed TargetType
s,
or if any target points to the wrong kind of object for this operation check.@NonNull Map<Target,ValidationResult> canPerformWithoutExemptions(Person person, Operation operation, Iterable<Target> targets)
canPerform(Person, Operation, Target)
.)
This check doesn't grant permission exemptions when called using #withExemption(Runnable)
.
person
- the Person on which to perform a permission and validation checkoperation
- the operation to check permission fortargets
- the Targets to individually check permission for; at least one target is required;
must all be of the same TargetType
ValidationResult
for each of the supplied targets. Results for each target will
be as follows:
BadRequestException
- if any of the parameters are null,
or if targets is empty, contains null targets or mixed TargetType
s,
or if any target points to the wrong kind of object for this operation check.<T> T withExemption(Supplier<T> task)
Calls to canPerform(Person, Operation, Iterable)
and canPerform(Person, Operation, Target)
within the executed task will return an authorized and valid result if the operation can be performed on each
target based on the target's state, irrespective of the user's permissions. Calls to other permission checks in
confluence may also be affected.
Use with care.
task
- task to execute with permission exemptionCopyright © 2003–2020 Atlassian. All rights reserved.