Skip to content

Commit 31c3dd6

Browse files
committed
🛂(frontend) show member list depend ability
We integrate the new ability "accesses_view" that tells if a user can view the accesses of a document.
1 parent 15700dd commit 31c3dd6

File tree

6 files changed

+46
-13
lines changed

6 files changed

+46
-13
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@ and this project adheres to
1717
- ✨(frontend) Add full name if available #380
1818
- ✨(backend) Add view accesses ability #376
1919

20+
## Changed
21+
22+
- ♻️(frontend) list accesses if user has abilities #376
23+
2024
## Fixed
2125

2226
- 🐛(backend) require right to manage document accesses to see invitations #369

src/frontend/apps/e2e/__tests__/app-impress/doc-header.spec.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -177,12 +177,13 @@ test.describe('Doc Header', () => {
177177
test('it checks the options available if administrator', async ({ page }) => {
178178
await mockedDocument(page, {
179179
abilities: {
180+
accesses_manage: true, // Means admin
181+
accesses_view: true,
180182
destroy: false, // Means not owner
181183
link_configuration: true,
182184
versions_destroy: true,
183185
versions_list: true,
184186
versions_retrieve: true,
185-
accesses_manage: true, // Means admin
186187
update: true,
187188
partial_update: true,
188189
retrieve: true,
@@ -247,12 +248,13 @@ test.describe('Doc Header', () => {
247248
test('it checks the options available if editor', async ({ page }) => {
248249
await mockedDocument(page, {
249250
abilities: {
251+
accesses_manage: false, // Means not admin
252+
accesses_view: true,
250253
destroy: false, // Means not owner
251254
link_configuration: false,
252255
versions_destroy: true,
253256
versions_list: true,
254257
versions_retrieve: true,
255-
accesses_manage: false, // Means not admin
256258
update: true,
257259
partial_update: true, // Means editor
258260
retrieve: true,
@@ -324,12 +326,13 @@ test.describe('Doc Header', () => {
324326
test('it checks the options available if reader', async ({ page }) => {
325327
await mockedDocument(page, {
326328
abilities: {
329+
accesses_manage: false, // Means not admin
330+
accesses_view: true,
327331
destroy: false, // Means not owner
328332
link_configuration: false,
329333
versions_destroy: false,
330334
versions_list: true,
331335
versions_retrieve: true,
332-
accesses_manage: false, // Means not admin
333336
update: false,
334337
partial_update: false, // Means not editor
335338
retrieve: true,

src/frontend/apps/e2e/__tests__/app-impress/doc-visibility.spec.ts

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -435,10 +435,20 @@ test.describe('Doc Visibility: Authenticated', () => {
435435
await page.goto(urlDoc);
436436

437437
await expect(page.locator('h2').getByText(docTitle)).toBeVisible();
438-
await expect(page.getByRole('button', { name: 'Share' })).toBeVisible();
438+
await page.getByRole('button', { name: 'Share' }).click();
439439
await expect(
440440
page.getByText('Read only, you cannot edit this document'),
441441
).toBeVisible();
442+
443+
const shareModal = page.getByLabel('Share modal');
444+
445+
await expect(
446+
shareModal.getByRole('combobox', {
447+
name: 'Visibility',
448+
}),
449+
).toHaveAttribute('disabled');
450+
await expect(shareModal.getByText('Search by email')).toBeHidden();
451+
await expect(shareModal.getByLabel('List members card')).toBeHidden();
442452
});
443453

444454
test('It checks a authenticated doc in editable mode', async ({
@@ -483,9 +493,19 @@ test.describe('Doc Visibility: Authenticated', () => {
483493
await page.goto(urlDoc);
484494

485495
await expect(page.locator('h2').getByText(docTitle)).toBeVisible();
486-
await expect(page.getByRole('button', { name: 'Share' })).toBeVisible();
496+
await page.getByRole('button', { name: 'Share' }).click();
487497
await expect(
488498
page.getByText('Read only, you cannot edit this document'),
489499
).toBeHidden();
500+
501+
const shareModal = page.getByLabel('Share modal');
502+
503+
await expect(
504+
shareModal.getByRole('combobox', {
505+
name: 'Visibility',
506+
}),
507+
).toHaveAttribute('disabled');
508+
await expect(shareModal.getByText('Search by email')).toBeHidden();
509+
await expect(shareModal.getByLabel('List members card')).toBeHidden();
490510
});
491511
});

src/frontend/apps/impress/src/features/docs/doc-management/components/ModalShare.tsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,8 +123,12 @@ export const ModalShare = ({ onClose, doc }: ModalShareProps) => {
123123
)}
124124
</Box>
125125
<Box $minHeight="0">
126-
<InvitationList doc={doc} />
127-
<MemberList doc={doc} />
126+
{doc.abilities.accesses_view && (
127+
<>
128+
<InvitationList doc={doc} />
129+
<MemberList doc={doc} />
130+
</>
131+
)}
128132
</Box>
129133
</Box>
130134
</SideModal>

src/frontend/apps/impress/src/features/docs/doc-management/types.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,11 @@ export interface Doc {
4444
created_at: string;
4545
updated_at: string;
4646
abilities: {
47+
accesses_manage: boolean;
48+
accesses_view: boolean;
4749
attachment_upload: true;
4850
destroy: boolean;
4951
link_configuration: boolean;
50-
accesses_manage: boolean;
5152
partial_update: boolean;
5253
retrieve: boolean;
5354
update: boolean;

src/frontend/apps/impress/src/features/service-worker/ApiPlugin.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -194,16 +194,17 @@ export class ApiPlugin implements WorkboxPlugin {
194194
created_at: new Date().toISOString(),
195195
updated_at: new Date().toISOString(),
196196
abilities: {
197+
accesses_manage: true,
198+
accesses_view: true,
199+
attachment_upload: true,
197200
destroy: true,
198201
link_configuration: true,
202+
partial_update: true,
203+
retrieve: true,
204+
update: true,
199205
versions_destroy: true,
200206
versions_list: true,
201207
versions_retrieve: true,
202-
accesses_manage: true,
203-
update: true,
204-
partial_update: true,
205-
retrieve: true,
206-
attachment_upload: true,
207208
},
208209
accesses: [
209210
{

0 commit comments

Comments
 (0)