From 15cc2d6f2114a4a2bba64adb636d334923758c44 Mon Sep 17 00:00:00 2001 From: Bruno Charest Date: Tue, 8 Sep 2026 11:58:31 -0400 Subject: [PATCH] =?UTF-8?q?fix(library):=20dir=3Dall=20=3D=20union=20de=20?= =?UTF-8?q?made+received=20(page=20partag=C3=A9e=20nominale=20visible=20da?= =?UTF-8?q?ns=20Tous)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/routers/library.py | 6 +++--- tests/test_sharing.py | 11 +++++++++++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/app/routers/library.py b/app/routers/library.py index d8aad24..59fd7da 100644 --- a/app/routers/library.py +++ b/app/routers/library.py @@ -224,12 +224,12 @@ async def library_shared( params: list = [] if dir in ("all", "made"): conds.append("p.share_mode != 'private'") + if dir in ("all", "made") and made_ids: + conds.append(f"p.id IN ({','.join('?' for _ in made_ids)})") + params.extend(made_ids) if dir in ("all", "received") and recv_ids: conds.append(f"p.id IN ({','.join('?' for _ in recv_ids)})") params.extend(recv_ids) - if dir == "made" and made_ids: - conds.append(f"p.id IN ({','.join('?' for _ in made_ids)})") - params.extend(made_ids) if dir == "received" and not recv_ids: return {"items": []} diff --git a/tests/test_sharing.py b/tests/test_sharing.py index 053be53..043f693 100644 --- a/tests/test_sharing.py +++ b/tests/test_sharing.py @@ -259,6 +259,17 @@ def test_library_shared_dir_all_is_union(client): assert a in ids +def test_library_shared_dir_all_includes_private_shared_made(client): + _auth(client, user_id=1, login="owner") + with get_conn_ctx() as conn: + a = _make_page_with(conn, "Private Shared A") + client.post(f"/api/pages/{a}/share", json={"user_id": 2, "permission": "comment"}) + + all_items = client.get("/api/library/shared").json()["items"] + ids = [it["id"] for it in all_items] + assert a in ids, "privately-shared page must appear in 'all' (union made+received)" + + def test_library_shared_invalid_dir_falls_back_to_all(client): _auth(client, user_id=1, login="owner") with get_conn_ctx() as conn: