Class TableDataCacheProxy.TableAccessCheckerImpl

java.lang.Object
com.illumon.iris.db.v2.locations.server.TableDataCacheProxy.TableAccessCheckerImpl
All Implemented Interfaces:
TableDataProtocol.TableAccessChecker
Enclosing class:
TableDataCacheProxy

public static class TableDataCacheProxy.TableAccessCheckerImpl extends Object implements TableDataProtocol.TableAccessChecker
The TDCP accepts authenticated RemoteTableDataService connections, and must assess whether the associated users can see tables. This assessment uses PermissionFilterProvider, which requires a Database. A local OnDiskQueryDatabase will suffice.
  • Method Details

    • hasPermission

      public boolean hasPermission(@Nullable io.deephaven.enterprise.auth.UserContext authenticatedUser, @NotNull TableKey tableKey)
      According to PermissionFilterProvider.getFiltersForTable(Database, String, String, boolean), "An empty list, means that no filtering is necessary. A null means the user does not have permission to view the table."
      This permission check is at the table level, not row level, so the answer is based on whether there are any filters at all for the user on the given table.
      Specified by:
      hasPermission in interface TableDataProtocol.TableAccessChecker
      Parameters:
      authenticatedUser - optional user requesting the table
      tableKey - the table requested
      Returns:
      true if the user may see the table