UNPKG

@solid/community-server

Version:

Community Solid Server: an open and modular implementation of the Solid specifications

32 lines (31 loc) 1.88 kB
import type { ResourceIdentifier } from '../http/representation/ResourceIdentifier'; import type { PodStore } from '../identity/interaction/pod/util/PodStore'; import type { StorageLocationStrategy } from '../server/description/StorageLocationStrategy'; import type { PermissionReaderInput } from './PermissionReader'; import { PermissionReader } from './PermissionReader'; import type { MultiPermissionMap } from './permissions/Permissions'; /** * Allows control access if the request is being made by an owner of the pod containing the resource. * This overrules any deductions made by the source reader: * if the target resource is owned by the client, they will always have control access. */ export declare class OwnerPermissionReader extends PermissionReader { protected readonly logger: import("global-logger-factory").Logger<unknown>; protected readonly podStore: PodStore; protected readonly storageStrategy: StorageLocationStrategy; protected readonly reader: PermissionReader; constructor(podStore: PodStore, storageStrategy: StorageLocationStrategy, reader: PermissionReader); canHandle(input: PermissionReaderInput): Promise<void>; handle(input: PermissionReaderInput): Promise<MultiPermissionMap>; protected findOwnedResources(identifiers: ResourceIdentifier[], webId?: string): Promise<ResourceIdentifier[]>; /** * Finds all pods that contain the given identifiers. * Return value is a record where the keys are the identifiers and the values the associated pod. */ protected findPods(identifiers: ResourceIdentifier[]): Promise<Record<string, string>>; /** * Finds the owners of the given pods. * Return value is a record where the keys are the pods and the values are all the WebIDs that own this pod. */ protected findOwners(pods: string[]): Promise<Record<string, string[]>>; }