public class

DefaultClausePermissionHandler

extends Object
implements ClausePermissionHandler
java.lang.Object
   ↳ com.atlassian.jira.jql.permission.DefaultClausePermissionHandler

Class Overview

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.

Summary

Fields
public static final DefaultClausePermissionHandler NOOP_CLAUSE_PERMISSION_HANDLER
Public Constructors
DefaultClausePermissionHandler(ClausePermissionChecker permissionChecker)
DefaultClausePermissionHandler(ClauseSanitiser sanitiser)
DefaultClausePermissionHandler(ClausePermissionChecker permissionChecker, ClauseSanitiser sanitiser)
Public Methods
boolean equals(Object o)
boolean hasPermissionToUseClause(ApplicationUser searcher, Set<FieldLayout> fieldLayouts)
Checks to see that the provided user is able to use the clause.
boolean hasPermissionToUseClause(ApplicationUser user)
Checks to see that the provided user is able to use the clause.
int hashCode()
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.

String toString()
[Expand]
Inherited Methods
From class java.lang.Object
From interface com.atlassian.jira.jql.permission.ClausePermissionChecker
From interface com.atlassian.jira.jql.permission.ClauseSanitiser

Fields

public static final DefaultClausePermissionHandler NOOP_CLAUSE_PERMISSION_HANDLER

Public Constructors

public DefaultClausePermissionHandler (ClausePermissionChecker permissionChecker)

public DefaultClausePermissionHandler (ClauseSanitiser sanitiser)

public DefaultClausePermissionHandler (ClausePermissionChecker permissionChecker, ClauseSanitiser sanitiser)

Public Methods

public boolean equals (Object o)

public boolean hasPermissionToUseClause (ApplicationUser searcher, Set<FieldLayout> fieldLayouts)

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).

Parameters
searcher to check permissions against.
fieldLayouts The field Layouts available to the given user (value of com.atlassian.jira.issue.fields.FieldManager#getVisibleFieldLayouts(User).
Returns
  • true if the user can use this clause, false otherwise.

public boolean hasPermissionToUseClause (ApplicationUser user)

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.

Parameters
user to check permissions against.
Returns
  • true if the user can use this clause, false otherwise.

public int hashCode ()

public 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. 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.

Parameters
user the user performing the search
clause the clause to be sanitised
Returns
  • the sanitised clause; never null.

public String toString ()