Hello everyone, I am currently trying to play around with ACL and the problems that I am facing are the following:
if I login using https//inrupt.net on login it would ask user to give a list of permissions, including control access to the application to change ACL etc. But when I try to login using broker.pod.inrupt.com it won’t output these options. How can I request users that are login in with broker.pod.inrupt.com to give my app the control access?
Is there a way to show this access request window again? Because after the login is completed and the user did not give the required permissions I want to prompt that window again
The ESS server on inrupt.com uses ACP (access control policy), not ACL (access control list). Same idea, different implementation, as allowed by the spec. See this documentation for how app authorization is handled in ESS.
Thank you. I have one more question regarding the universal access control API. Is that module functioning properly? The reason why I am asking is because when I try to use function from that module and import them, I would get an error:
Module not found: Error: Package path <…> is not exported from package <…>
The Universal Access API is a bit special (for now - I expect the rest to move to this structure eventually as well) in that its methods are not exported from the top level of the package, because it would conflict too much with the other two access APIs (i.e. the Universal, ACP and WAC APIs all have similar function names). So you have to import it from their submodules, e.g.:
import {
setPublicAccess
} from "@inrupt/solid-client/access/universal";
Thank you, but I tried it as well and for some reason, this is the error that I get:
this is if I use the path that you have given ("@inrupt/solid-client/access/universal")
my @inrupt/solid-client is of the latest version (1.23.0)
if I use import {getPublicAccess} from “@inrupt/solid-client/src/access/universal”;
or import {getPublicAccess} from “@inrupt/solid-client/dist/access/universal”;
I would get the error on app start:
Module not found: Error: Package path <…> is not exported from package <…>
Ah, that’s because TypeScript until recently did not support submodule imports - that was only officially released a week ago, and I don’t think solid-client has updated to adopt that yet.
As a workaround, you can import { access } from "@inrupt/solid-client"; to get an object containing all the Universal Access APIs (e.g. access.getPublicAccess), though do note that this is not part of the official API (i.e. it might be removed in future versions) and interferes with tree-shaking, if you’re using that.