All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.almworks.jira.structure.api.settings.AttributeSensitivitySettings Maven / Gradle / Ivy

There is a newer version: 17.25.3
Show newest version
package com.almworks.jira.structure.api.settings;

import com.almworks.jira.structure.api.attribute.AttributeSpec;
import org.jetbrains.annotations.NotNull;

import java.util.Set;

/**
 * 

Attribute sensitivity settings govern which attributes will be considered sensitive when calculating a multi-row aggregate value (by * an aggregate, a propagate, or a scanning loader). This plays a role when a user does not have view access to some of the items in the forest, * yet they look at a total or some other aggregate value.

* *

As an example let's consider aggregate attribute Total Story Points, calculating over a folder, which contains issues X, Y, and Z. * The current user does not have access to Z, so they only see the folder, X, and Y.

* *

If the aggregated attribute - Story Points - is sensitive, then the value for the folder will be calculated only over those * issues that the user can actually observe, in this case, X and Y. Another user, who has access to all issues, will see a total of X, Y, and Z - * potentially a different number.

* *

If the aggregated attribute is non-sensitive, the total for the folder will show the same number for all users, even if * they don't have access to some of the sub-items. Note that the inaccessible item is not disclosed to the user in any case.

* *

These settings allow Jira admins to set the default mode (see {@link #getSensitivityMode()}) and exceptions (see {@link #getNonSensitiveAttributes()}). *

* * @see StructureConfiguration#getAttributeSensitivitySettings * @see StructureConfiguration#setAttributeSensitivitySettings * @see ImmutableAttributeSensitivitySettingsBean */ public interface AttributeSensitivitySettings { /** * Returns the default sensitivity mode. * * @return sensitivity mode */ @NotNull AttributeSensitivityMode getSensitivityMode(); /** *

Returns attributes that were explicitly set to be non-sensitive, regardless of the default mode.

* *

Note that if the mode is {@link AttributeSensitivityMode#PERMISSIVE}, this method may still return some attributes, although * that will not have any additional effect - everything is non-sensitive by mode.

* * @return a list of attributes set to be non-sensitive */ @NotNull Set> getNonSensitiveAttributes(); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy