Interface EdgeAclProvider

All Known Implementing Classes:
EdgeAclImpl

public interface EdgeAclProvider
Objects that implement this interface provide ACLs for tables based on the requesting user at request time, as opposed to SourceAclProvider which applies ACLS to the table when it is fetched from the data source.
  • Field Details

  • Method Details

    • addAcl

      static void addAcl(@NotNull @NotNull String group, @NotNull @NotNull Object value)
    • builder

      Get a EdgeAclProvider.Builder to create ACLs for a table.
      Returns:
      a new EdgeAclProvider.Builder
    • getRowFilters

      @Nullable @Nullable Collection<WhereFilter>[] getRowFilters(@NotNull @NotNull AclSupport support, @NotNull @NotNull UserContext userContext, boolean isRefreshing)
      Get the set of WhereFilters that should be disjunctively applied to requested tables.
      Parameters:
      support - the support object
      userContext - the user to generate the ACL for
      isRefreshing - if the table is refreshing
      Returns:
      the collection of row ACLs to be disjunctively applied to the table.
    • getColumnFilters

      @Nullable @Nullable ColumnAcl getColumnFilters(@NotNull @NotNull AclSupport support, @NotNull @NotNull UserContext userContext, @NotNull @NotNull String[] columnNames, boolean isRefreshing)
      Get the column ACLs to apply to requested tables.
      Parameters:
      support - the support object
      userContext - the user to generate the ACL for
      columnNames - the columns to fetch ACLs for
      isRefreshing - if the table is refreshing
      Returns:
      the column ACLs
    • hasColumnFilters

      boolean hasColumnFilters()
      Returns true if there are any column Filters defined for this EdgeAclProvider.
      Returns:
      true if any column filters are defined, false if no column filters are defined
    • hasOrphanPromotion

      boolean hasOrphanPromotion()
      Returns true if orphans should be promoted when this provider is applied to a TreeTable.
      Returns:
      true if orphans should be promoted during ACL application.
    • getGroups

      @NotNull @NotNull Set<String> getGroups()
      Get the set of groups that may access the table this ACL guards.
      Returns:
      the set of groups that may access the table
    • applyTo

      @FinalDefault default Table applyTo(@NotNull @NotNull Table table)
      Attach the ACLs to the specified table
      Parameters:
      table - the table to apply ACLs to
      Returns:
      the table with ACLs applied
    • applyTo

      @FinalDefault default RollupTable applyTo(@NotNull @NotNull RollupTable table)
      Applies the given provider to a RollupTable.

      Only Row ACLs are permitted, column ACLs are not permitted.

      Parameters:
      table - the hierarchical table to apply the ACL to
      Returns:
      the hierarchical table with the applied ACL
    • applyTo

      @FinalDefault default TreeTable applyTo(@NotNull @NotNull TreeTable table)
      Applies the given provider to a TreeTable.

      Only Row ACLs are permitted, column ACLs are not permitted.

      Parameters:
      table - the hierarchical table to apply the ACL to
      Returns:
      the hierarchical table with the applied ACL
    • applyTo

      @FinalDefault default PivotTable applyTo(@NotNull @NotNull PivotTable table)
      Applies the given provider to a PivotTable.

      Only Row ACLs are permitted, column ACLs are not permitted.

      Parameters:
      table - the hierarchical table to apply the ACL to
      Returns:
      the hierarchical table with the applied ACL