@inrupt/solid-client
Version:
Make your web apps work with Solid Pods.
36 lines (35 loc) • 2.03 kB
TypeScript
import type { AccessModes, UrlString } from "../interfaces";
import type { DefaultOptions } from "../acp/type/DefaultOptions";
/**
* Set access to a resource for the public.
*
* This function works with Solid Pods that implement either the Web Access
* Control spec or the Access Control Policies proposal, with some caveats:
*
* - If access to the given Resource has been set using anything other than the
* functions in this module, it is possible that it has been set in a way that
* prevents this function from reliably setting access.
* - It will only set access explicitly for the given Agent. In other words,
* additional restrictions could be present that further restrict or loosen
* what access the given Agent has in particular circumstances.
* - The provided access will only apply to the given Resource. In other words,
* if the Resource is a Container, the configured Access will not apply to
* contained Resources.
* - If the current user does not have permission to view or change access for
* the given Resource, this function will resolve to `null`.
*
* Additionally, two caveats apply to users with a Pod server that uses WAC:
* - If the Resource did not have an ACL yet, a new one will be initialised.
* This means that changes to the ACL of a parent Container can no longer
* affect access people have to this Resource, although existing access will
* be preserved.
* - Setting different values for `controlRead` and `controlWrite` is not
* supported, and **will throw an error**. If you expect (some of) your users
* to have Pods implementing WAC, be sure to pass the same value for both.
*
* @param resourceUrl URL of the Resource you want to set access for.
* @param access The Access Modes to add (true) or remove (false).
* @param options Default Options such as a fetch function.
* @since 1.19.0
*/
export declare function setPublicAccess(resourceUrl: UrlString, access: Partial<AccessModes>, options?: DefaultOptions): Promise<AccessModes | null>;