Sharing pane overwrites current owner
Open
Nobody has claimed this yet.
bug
priority-high
- Dominant language
- TypeScript
- Stars
- 153
- Forks
- 46
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 7
Description
Did this always happen? It seems pretty big.
To Replicate:
- In the databrowser, create a new file in, say, the
privatefolder (https://jackson.localhost:8443/private/test.txt) - Once you do that, the private folder has two resources (
https://jackson.localhost:8443/private/test.txtandhttps://jackson.localhost:8443/private/.acl- the private folder's default acl, seen below)
# ACL resource for the private folder
@prefix acl: <http://www.w3.org/ns/auth/acl#>.
# 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.txtinherits its permissions fromprivate'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 <test.txt>;
acl:agent c:me;
acl:mode acl:Control, acl:Read, acl:Write.
- Everything's still fine because it adds
c:meto 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.aclto 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 <test.txt>; 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.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the sharing pane flow triggered by “Set specific sharing preferences” and the green-plus user addition. Trace how the existing ACL is updated when a new WebID is added; done means the new user is added while the current owner and existing permissions remain. Reproduce the steps in the issue to verify the resulting ACL.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- authorization, frontend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100