@solid/community-server
Version:
Community Solid Server: an open and modular implementation of the Solid specifications
32 lines (31 loc) • 1.88 kB
TypeScript
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[]>>;
}