SolidOS / solid-ui

User Interface widgets and utilities for Solid
https://solidos.github.io/solid-ui/dist/solid-ui.js
MIT License
148 stars 41 forks source link

Sharing pane overwrites current owner #396

Open jaxoncreed opened 3 years ago

jaxoncreed commented 3 years ago

Did this always happen? It seems pretty big.

To Replicate:

The owner has all permissions

<#owner> a acl:Authorization; acl:agent https://jackson.localhost:8443/profile/card#me; acl:accessTo <./>; acl:defaultForNew <./>; acl:mode acl:Read, acl:Write, acl:Control.

 - At this point, everything's good. `text.txt` inherits its permissions from `private`'s acl.
 - Go to the sharing pane and click "Set specific sharing preferences"
 - This will cause a new file (`https://jackson.localhost:8443/private/test.txt.acl`) to be made (see below)

@prefix : <#>. @prefix acl: http://www.w3.org/ns/auth/acl#. @prefix c: </profile/card#>.

:owner a acl:Authorization; acl:accessTo ; acl:agent c:me; acl:mode acl:Control, acl:Read, acl:Write.

 - Everything's still fine because it adds `c:me` to the acl.
 - Now, click the green plus and the single person icon to add a new user.
 - Add another webid like `https://ldp.demo-ess.inrupt.com/114176645321964550648/profile/card#me`
 - This updates `https://jackson.localhost:8443/private/test.txt.acl` to be below

@prefix : <#>. @prefix n0: http://www.w3.org/ns/auth/acl#. @prefix c: https://ldp.demo-ess.inrupt.com/114176645321964550648/profile/card#.

:Read a n0:Authorization; n0:accessTo ; n0:agent c:me; n0:mode n0:Read.


 - Notice that instead of adding the new user, it fully replaced the original owner of the document.
bourgeoa commented 3 years ago

@jaxoncreed confirmed.

It looks like that in first place the sharing-pane do not edit the just created acl document but a new void acl document.

timbl commented 3 years ago

That is strange. The sharing pane has seen quite a lot of use. But maybe we don't use the "Make specific sharing for this" button very often it is could have rotted. Sounds like something like doing a PUT to the web but not updating the store with the same data.