Class DefaultClausePermissionHandler
java.lang.Object
com.atlassian.jira.jql.permission.DefaultClausePermissionHandler
- All Implemented Interfaces:
ClausePermissionChecker,ClausePermissionHandler,ClauseSanitiser
The default implementation of a
ClausePermissionHandler. To fulfill the
responsibilities of the composite interfaces ClauseSanitiser and
ClausePermissionChecker, this class simply holds one reference to each
interface, and delegates to those instances.- Since:
- v4.0
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionDefaultClausePermissionHandler(ClausePermissionChecker permissionChecker) DefaultClausePermissionHandler(ClausePermissionChecker permissionChecker, ClauseSanitiser sanitiser) DefaultClausePermissionHandler(ClauseSanitiser sanitiser) -
Method Summary
Modifier and TypeMethodDescriptionbooleaninthashCode()booleanChecks to see that the provided user is able to use the clause.booleanhasPermissionToUseClause(ApplicationUser searcher, Set<FieldLayout> fieldLayouts) Checks to see that the provided user is able to use the clause.sanitise(ApplicationUser user, TerminalClause clause) Given a user and a clause, will return a sanitised clause that when possible will not contain any information that the specified user does not have permission to see.toString()
-
Field Details
-
NOOP_CLAUSE_PERMISSION_HANDLER
-
-
Constructor Details
-
DefaultClausePermissionHandler
-
DefaultClausePermissionHandler
-
DefaultClausePermissionHandler
public DefaultClausePermissionHandler(ClausePermissionChecker permissionChecker, ClauseSanitiser sanitiser)
-
-
Method Details
-
hasPermissionToUseClause
Description copied from interface:ClausePermissionCheckerChecks to see that the provided user is able to use the clause. This may be as simple as determining if the user has permission to see the field that the clause represents.- Specified by:
hasPermissionToUseClausein interfaceClausePermissionChecker- Parameters:
user- to check permissions against.- Returns:
- true if the user can use this clause, false otherwise.
-
hasPermissionToUseClause
Description copied from interface:ClausePermissionCheckerChecks to see that the provided user is able to use the clause. This method provides all the FieldLayouts visible to the given user as a shortcut otherwise individual checkers can end up looking this up dozens or even hundreds of times with causes slow downs in our search (see JRADEV-15665).- Specified by:
hasPermissionToUseClausein interfaceClausePermissionChecker- Parameters:
searcher- to check permissions against.fieldLayouts- The field Layouts available to the given user (value of.invalid reference
com.atlassian.jira.issue.fields.FieldManager#getVisibleFieldLayouts(User)- Returns:
- true if the user can use this clause, false otherwise.
-
sanitise
Description copied from interface:ClauseSanitiserGiven a user and a clause, will return a sanitised clause that when possible will not contain any information that the specified user does not have permission to see. For example, if the given clause names a project that the user cannot browse, a sanitiser might return a new clause with the name of the project replaced with the id.
It is important that the returned clause is equivalent to the input clause, within the constraints of the permissible clauses for the specified user.
- Specified by:
sanitisein interfaceClauseSanitiser- Parameters:
user- the user performing the searchclause- the clause to be sanitised- Returns:
- the sanitised clause; never null.
-
equals
-
hashCode
public int hashCode() -
toString
-