From ecac9c6ced4efe96902c2d77ff9f07a1ccfa7391 Mon Sep 17 00:00:00 2001 From: Max Berger Date: Wed, 22 Apr 2026 20:59:06 +0200 Subject: [PATCH] UI: Bugfix showing sharing permissions --- integ_tests/test_sharing.py | 25 +++++++++++++++++++ .../web/internal_data/js/utils/permissions.js | 6 ++--- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/integ_tests/test_sharing.py b/integ_tests/test_sharing.py index 5be65b99..e439e671 100644 --- a/integ_tests/test_sharing.py +++ b/integ_tests/test_sharing.py @@ -63,6 +63,16 @@ def test_create_and_delete_share_by_key( "tr[data-name='sharetokenrowtemplate']:not(.hidden) span[data-name='ro']" ) ).to_be_visible() + expect( + page.locator( + "tr[data-name='sharetokenrowtemplate']:not(.hidden) span[data-name='rw']" + ) + ).to_be_hidden() + expect( + page.locator( + "tr[data-name='sharetokenrowtemplate']:not(.hidden) span[data-name='conversion']" + ) + ).to_be_hidden() page.click('tr:not(.hidden) button[data-name="delete"]', strict=True) page.click('#deleteconfirmationscene button[data-name="delete"]') expect( @@ -79,6 +89,16 @@ def test_create_and_delete_share_by_key( "tr[data-name='sharetokenrowtemplate']:not(.hidden) span[data-name='rw']" ) ).to_be_visible() + expect( + page.locator( + "tr[data-name='sharetokenrowtemplate']:not(.hidden) span[data-name='ro']" + ) + ).to_be_hidden() + expect( + page.locator( + "tr[data-name='sharetokenrowtemplate']:not(.hidden) span[data-name='conversion']" + ) + ).to_be_hidden() page.click('tr:not(.hidden) button[data-name="delete"]', strict=True) page.click('#deleteconfirmationscene button[data-name="delete"]') expect( @@ -388,6 +408,11 @@ def test_create_and_delete_share_by_bday( "tr[data-name='sharemaprowtemplate']:not(.hidden) span[data-name='ro']" ) ).to_be_hidden() + expect( + page.locator( + "tr[data-name='sharemaprowtemplate']:not(.hidden) span[data-name='rw']" + ) + ).to_be_hidden() # Instead, there should be the conversion icon expect( diff --git a/radicale/web/internal_data/js/utils/permissions.js b/radicale/web/internal_data/js/utils/permissions.js index 82f6bd05..45d7a024 100644 --- a/radicale/web/internal_data/js/utils/permissions.js +++ b/radicale/web/internal_data/js/utils/permissions.js @@ -35,18 +35,16 @@ export function displayPermissionsOrConversion(conversion, permissions, node) { rwElement.classList.add("hidden"); } else { permissions = (permissions || "").toLowerCase(); - if (permissions === "rw") { + if (permissions.includes('w')) { rwElement.classList.remove("hidden"); rwElement.setAttribute("title", "Read and write"); roElement.classList.add("hidden"); conversionElement.classList.add("hidden"); - } else if (permissions === "r") { + } else { roElement.classList.remove("hidden"); roElement.setAttribute("title", "Read-only"); rwElement.classList.add("hidden"); conversionElement.classList.add("hidden"); - } else { - console.warn("Unknown permissions", permissions); } } }