SolidOS / SolidOS/solid-ui

Sharing pane overwrites current owner

オープン
#396 コメント 2 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

bug priority-high
主要言語
TypeScript
スター
153
フォーク
46
平均マージ
1日 8時間
マージ済み PR(30日)
7

説明

Did this always happen? It seems pretty big.

To Replicate:

  • In the databrowser, create a new file in, say, the private folder (https://jackson.localhost:8443/private/test.txt)
  • Once you do that, the private folder has two resources (https://jackson.localhost:8443/private/test.txt and https://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.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 <test.txt>;
    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 <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.

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

“Set specific sharing preferences” と緑色のプラスによるユーザー追加で開始される共有ペインのフローから着手してください。新しい WebID が追加されたときに既存の ACL がどのように更新されるかを追跡します。新しいユーザーが追加され、現在の所有者と既存の権限が維持されれば完了です。結果の ACL を検証するため、issue に記載された手順を再現してください。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
typescript
領域
authorization, frontend
issue の種類
バグ
難易度
3/5
見積もり時間
1〜2日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
45/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。