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 TypeMethodDescriptionboolean
int
hashCode()
boolean
Checks to see that the provided user is able to use the clause.boolean
hasPermissionToUseClause
(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:ClausePermissionChecker
Checks 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:
hasPermissionToUseClause
in interfaceClausePermissionChecker
- Parameters:
user
- to check permissions against.- Returns:
- true if the user can use this clause, false otherwise.
-
hasPermissionToUseClause
Description copied from interface:ClausePermissionChecker
Checks 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:
hasPermissionToUseClause
in interfaceClausePermissionChecker
- Parameters:
searcher
- to check permissions against.fieldLayouts
- The field Layouts available to the given user (value ofinvalid 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:ClauseSanitiser
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. 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:
sanitise
in 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
-