Interface BulkPermissionService

  • All Known Implementing Classes:
    DenormalisedPermissionFallbackServiceImpl, DenormalisedPermissionRouter, DenormalisedPermissionServiceImpl

    @ExperimentalApi
    @Transactional(readOnly=true)
    public interface BulkPermissionService
    Bulk permission service allows to check permissions in batches quickly and efficiently. This service is eventual consistent and may not reflect the real state of the permissions (there would be a few seconds lag). If a new restricted content is added, it will be unavailable for all users for the next few seconds until the normalized data is updated. It is required to prevent unauthorised access.
    Since:
    7.11.0
    • Method Detail

      • getAllSpaceKeysWithPermissionStatuses

        Map<String,​Boolean> getAllSpaceKeysWithPermissionStatuses​(@Nullable
                                                                        ConfluenceUser confluenceUser,
                                                                        String spacePermissionType)
        Returns a map of spaces where key is space key, and value is flag (true if permitted, false is not)
        Parameters:
        confluenceUser - confluence user.
        spacePermissionType - - permission type. Only "VIEWSPACE" or "EDITSPACE" are supported
        Returns:
        map of spaces with their permission statuses
      • getPermittedSpaces

        List<Space> getPermittedSpaces​(SpacesQuery spaceQuery,
                                       int offset,
                                       int limit)
        Returns a list of permitted spaces filters by spaceQuery.
        Parameters:
        spaceQuery - query
        offset - offset for the query
        limit - maxResults for the query. Must be greater than 0
        Returns:
        list of permitted filtered spaces
      • getPermittedSpaceIds

        Set<Long> getPermittedSpaceIds​(@Nullable
                                       ConfluenceUser confluenceUser,
                                       Set<Long> spaceIds,
                                       String spacePermissionType)
        Returns a set of permitted space ids.
        Parameters:
        confluenceUser - confluence user.
        spaceIds - space ids.
        spacePermissionType - - permission type. Only "VIEWSPACE" or "EDITSPACE" are supported.
        Returns:
        set of permitted spaces
      • getVisibleChildPages

        Map<Long,​List<SimpleContent>> getVisibleChildPages​(@Nullable
                                                                 ConfluenceUser confluenceUser,
                                                                 Set<Long> parentPageIdSet,
                                                                 boolean checkInheritedPermissions)
        Receives a set of page ids as a parameter and finds all visible children for them. Users from "confluence-administrators" group are exempt from permission checks - they will get all existing pages.
        Parameters:
        confluenceUser - the Confluence user, null if anonymous
        parentPageIdSet - set of parent page ids
        Returns:
        a list of SimpleContent entities representing the child pages visible to the user
      • getVisibleTopLevelPages

        List<SimpleContent> getVisibleTopLevelPages​(@Nullable
                                                    ConfluenceUser confluenceUser,
                                                    long spaceId)
        Finds all visible top-level pages. Users from "confluence-administrators" group are exempt from permission checks - they will get all existing pages.
        Parameters:
        confluenceUser - the Confluence user, null if anonymous
        spaceId - the space ID
        Returns:
        a list of SimpleContent entities representing the child pages visible to the user
      • getAllVisiblePagesInSpace

        List<SimpleContent> getAllVisiblePagesInSpace​(@Nullable
                                                      ConfluenceUser confluenceUser,
                                                      long spaceId)
        Returns the full list of visible pages in the space. Users from "confluence-administrators" group are exempt from permission checks - they will get all existing pages.
        Parameters:
        confluenceUser - the Confluence user, null if anonymous
        spaceId - the space ID
        Returns:
        a list of SimpleContent entities representing all pages visible to the user in a space
      • getVisiblePageIds

        Set<Long> getVisiblePageIds​(@Nullable
                                    ConfluenceUser confluenceUser,
                                    Set<Long> pageIds,
                                    boolean checkSpacePermissions)
        Returns a set of visible page ids. checkSpacePermissions must be set to true if permissions for spaces were not checked. checkSpacePermissions can be set to false if we already checked permissions for the their spaces. It allows to avoid unnecessary SQL qeueries.
        Parameters:
        confluenceUser - confluence user.
        pageIds - page ids.
        checkSpacePermissions - if false, "useConfluence" and corresponding space permissions will NOT be checked. If true, "useConfluence" and corresponding space permissions will be checked too.
        Returns:
        set of visible page ids