diff --git a/src/frontend/apps/e2e/__tests__/app-impress/pad-tools.spec.ts b/src/frontend/apps/e2e/__tests__/app-impress/pad-tools.spec.ts index 9eb20c20..af6ebd86 100644 --- a/src/frontend/apps/e2e/__tests__/app-impress/pad-tools.spec.ts +++ b/src/frontend/apps/e2e/__tests__/app-impress/pad-tools.spec.ts @@ -135,4 +135,36 @@ test.describe('Pad Tools', () => { const panel = page.getByLabel('Pads panel').first(); await expect(panel.locator('li').getByText(randomPad)).toBeHidden(); }); + + test('it cannot update if not the owner', async ({ page, browserName }) => { + const [padName] = await createPad( + page, + 'pad-tools-right-management', + browserName, + 1, + true, + ); + + await page.getByText('My account').click(); + await page.getByText('Logout').first().click(); + + await page.getByLabel('Restart login').click(); + + const browserNames = ['chromium', 'webkit']; + const newBrowserName = browserNames.find((name) => name !== browserName)!; + + await keyCloakSignIn(page, newBrowserName); + + const panel = page.getByLabel('Pads panel').first(); + await panel.getByText(padName).click(); + + await page.getByLabel('Open the document options').click(); + + await expect( + page.getByRole('button', { name: 'Generate PDF' }), + ).toBeVisible(); + await expect( + page.getByRole('button', { name: 'Update document' }), + ).toBeHidden(); + }); }); diff --git a/src/frontend/apps/impress/src/features/pads/pad-tools/components/PadToolBox.tsx b/src/frontend/apps/impress/src/features/pads/pad-tools/components/PadToolBox.tsx index 45eefb06..89881f03 100644 --- a/src/frontend/apps/impress/src/features/pads/pad-tools/components/PadToolBox.tsx +++ b/src/frontend/apps/impress/src/features/pads/pad-tools/components/PadToolBox.tsx @@ -57,16 +57,30 @@ export const PadToolBox = ({ pad }: PadToolBoxProps) => { isOpen={isDropOpen} > - + {pad.abilities.partial_update && ( + + )} + {pad.abilities.destroy && ( + + )}