Interface ApplicationAuthorizationService

All Known Implementing Classes:
ApplicationAuthorizationServiceImpl

public interface ApplicationAuthorizationService
A utility service to determine if a user has access to a specific application (as identified by its ApplicationKey).
Since:
7.0
See Also:
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    canUseApplication(ApplicationUser user, com.atlassian.application.api.ApplicationKey key)
    Determines whether the given user is allowed to access the passed application.
    Set<com.atlassian.application.api.ApplicationAccess.AccessError>
    getAccessErrors(ApplicationUser user, com.atlassian.application.api.ApplicationKey key)
    Gets the errors that would occur if the passed user accessed the passed application.
    Set<com.atlassian.application.api.ApplicationAccess.AccessError>
    getLicensingAccessErrors(com.atlassian.application.api.ApplicationKey key)
    Get any errors that would occur when accessing the passed application.
    int
    getUserCount(com.atlassian.application.api.ApplicationKey key)
    Retrieve the number of active users for an application as identified by the ApplicationKey.
    boolean
    hasNoLicensingAccessErrors(com.atlassian.application.api.ApplicationKey key)
    Determines whether it is possible to access the passed application.
    boolean
    Returns true if any of the licenses in this JIRA instance have exceeded their respective license user limit.
    boolean
    isApplicationInstalledAndLicensed(com.atlassian.application.api.ApplicationKey key)
    Determines whether an application is installed (running in this JIRA instance) and has a backing (potentially exceeded) license.
    boolean
    isExceeded(com.atlassian.application.api.ApplicationKey key)
    Determines whether an application's license user limit have been exceeded.
  • Method Details

    • canUseApplication

      boolean canUseApplication(@Nullable ApplicationUser user, @Nonnull com.atlassian.application.api.ApplicationKey key)
      Determines whether the given user is allowed to access the passed application. This simply checks if there are any access errors caused by the user accessing the application. That is, it calls return getAccessError(user, key).isEmpty().

      You can get more fine grained control using getAccessErrors(com.atlassian.jira.user.ApplicationUser, com.atlassian.application.api.ApplicationKey)

      Parameters:
      user - the user to check for access rights - if this is null, this method returns false
      key - the key that uniquely identifies the application.
      Returns:
      true if the user has been assigned to the specified application and the application is backed by a license.
    • getAccessErrors

      Set<com.atlassian.application.api.ApplicationAccess.AccessError> getAccessErrors(@Nullable ApplicationUser user, @Nonnull com.atlassian.application.api.ApplicationKey key)
      Gets the errors that would occur if the passed user accessed the passed application. This includes checking errors from both the license and user access. Note, this is not a specific licensing check, as long as there is a license that can grant access present then there will be no access errors. That is, the access may not come from the license of the specific application you are checking.
      Parameters:
      user - the user to check for access rights - if null this will give a AccessError.NO_ACCESS.
      key - the key that uniquely identifies the application.
      Returns:
      the set of ApplicationAccess.AccessError. An empty set is returned if no errors would occur.
    • hasNoLicensingAccessErrors

      boolean hasNoLicensingAccessErrors(@Nonnull com.atlassian.application.api.ApplicationKey key)
      Determines whether it is possible to access the passed application. Importantly, it does not indicate if a particular user would be able to access the application. Use canUseApplication(com.atlassian.jira.user.ApplicationUser, com.atlassian.application.api.ApplicationKey) to work out access permission for a particular user.

      Note, this simply calls getLicensingAccessErrors(key).isEmpty().

      You can get more fine grained control using getLicensingAccessErrors(com.atlassian.application.api.ApplicationKey)

      Parameters:
      key - the key that uniquely identifies the application.
      Returns:
      true if the application has a license that is not exceeded, expired, or with a version mismatch. A return of false indicates that users will not be able to access the application. A return of true indicates it might be possible for a user to access the application.
    • getLicensingAccessErrors

      Set<com.atlassian.application.api.ApplicationAccess.AccessError> getLicensingAccessErrors(@Nonnull com.atlassian.application.api.ApplicationKey key)
      Get any errors that would occur when accessing the passed application. Note, this only checks access errors resulting from licensing, not from particular users accessing the application. User access errors are given by getAccessErrors(com.atlassian.jira.user.ApplicationUser, com.atlassian.application.api.ApplicationKey). Furthermore, this is not a specific licensing check, as long as there is a license that can grant access present then there will be no access errors. That is, the access may not come from the license of the specific application you are checking.
      Parameters:
      key - the key that uniquely identifies the application.
      Returns:
      the set of ApplicationAccess.AccessError. An empty set is returned if no errors would occur.
    • isApplicationInstalledAndLicensed

      boolean isApplicationInstalledAndLicensed(@Nonnull com.atlassian.application.api.ApplicationKey key)
      Determines whether an application is installed (running in this JIRA instance) and has a backing (potentially exceeded) license.

      Note: This method still returns true if the application's license has expired or has been exceeded.

      Parameters:
      key - the key that uniquely identifies the application.
      Returns:
      true if the application is installed (running in this JIRA instance) and has a backing (potentially exceeded) license.
      See Also:
    • isAnyRoleLimitExceeded

      boolean isAnyRoleLimitExceeded()
      Returns true if any of the licenses in this JIRA instance have exceeded their respective license user limit.

      Note: does NOT check that license is within expiry limits; see LicenseDetails.isExpired().

      Returns:
      true if any of the licenses in this JIRA instance have exceeded their respective license user limit.
    • isExceeded

      boolean isExceeded(@Nonnull com.atlassian.application.api.ApplicationKey key)
      Determines whether an application's license user limit have been exceeded.

      Note: Does NOT check that license is within expiry limits; see LicenseDetails.isExpired().

      Returns false when the application is not installed.

      Parameters:
      key - the key that uniquely identifies the application.
      Returns:
      true if the application's license user limit have been exceeded or false otherwise.
    • getUserCount

      int getUserCount(@Nonnull com.atlassian.application.api.ApplicationKey key)
      Retrieve the number of active users for an application as identified by the ApplicationKey.

      It will uniquely count all users who are found in the groups associated with the application.

      Parameters:
      key - the key that uniquely identifies the application.
      Returns:
      the number of active users for the passed ApplicationRole when the application does not exist (0) would be returned.