Skip to content

Commit cbb6fc7

Browse files
committed
👔(backend) doc restricted by default
By default a created document was in "authenticated" mode, we switch to "restricted" by default.
1 parent 31c3dd6 commit cbb6fc7

File tree

5 files changed

+87
-61
lines changed

5 files changed

+87
-61
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ and this project adheres to
2020
## Changed
2121

2222
- ♻️(frontend) list accesses if user has abilities #376
23+
- 👔(backend) doc restricted by default #388
2324

2425
## Fixed
2526

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Generated by Django 5.1.2 on 2024-10-25 11:41
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
('core', '0007_fix_users_duplicate'),
10+
]
11+
12+
operations = [
13+
migrations.AlterField(
14+
model_name='document',
15+
name='link_reach',
16+
field=models.CharField(choices=[('restricted', 'Restricted'), ('authenticated', 'Authenticated'), ('public', 'Public')], default='restricted', max_length=20),
17+
),
18+
]

src/backend/core/models.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -336,7 +336,7 @@ class Document(BaseModel):
336336
link_reach = models.CharField(
337337
max_length=20,
338338
choices=LinkReachChoices.choices,
339-
default=LinkReachChoices.AUTHENTICATED,
339+
default=LinkReachChoices.RESTRICTED,
340340
)
341341
link_role = models.CharField(
342342
max_length=20, choices=LinkRoleChoices.choices, default=LinkRoleChoices.READER

src/backend/core/tests/documents/test_api_documents_create.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ def test_api_documents_create_authenticated_success():
4747
assert response.status_code == 201
4848
document = Document.objects.get()
4949
assert document.title == "my document"
50+
assert document.link_reach == "restricted"
5051
assert document.accesses.filter(role="owner", user=user).exists()
5152

5253

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

Lines changed: 66 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -40,20 +40,20 @@ test.describe('Doc Visibility', () => {
4040
name: 'Visibility',
4141
});
4242

43-
await expect(selectVisibility.getByText('Authenticated')).toBeVisible();
43+
await expect(selectVisibility.getByText('Restricted')).toBeVisible();
4444

45-
await expect(page.getByLabel('Read only')).toBeVisible();
46-
await expect(page.getByLabel('Can read and edit')).toBeVisible();
45+
await expect(page.getByLabel('Read only')).toBeHidden();
46+
await expect(page.getByLabel('Can read and edit')).toBeHidden();
4747

4848
await selectVisibility.click();
4949
await page
5050
.getByRole('option', {
51-
name: 'Restricted',
51+
name: 'Authenticated',
5252
})
5353
.click();
5454

55-
await expect(page.getByLabel('Read only')).toBeHidden();
56-
await expect(page.getByLabel('Can read and edit')).toBeHidden();
55+
await expect(page.getByLabel('Read only')).toBeVisible();
56+
await expect(page.getByLabel('Can read and edit')).toBeVisible();
5757

5858
await selectVisibility.click();
5959

@@ -87,26 +87,6 @@ test.describe('Doc Visibility: Restricted', () => {
8787

8888
await expect(page.getByRole('heading', { name: docTitle })).toBeVisible();
8989

90-
await page.getByRole('button', { name: 'Share' }).click();
91-
await page
92-
.getByRole('combobox', {
93-
name: 'Visibility',
94-
})
95-
.click();
96-
await page
97-
.getByRole('option', {
98-
name: 'Restricted',
99-
})
100-
.click();
101-
102-
await expect(
103-
page.getByText('The document visibility has been updated.'),
104-
).toBeVisible();
105-
106-
await page.locator('.c__modal__backdrop').click({
107-
position: { x: 0, y: 0 },
108-
});
109-
11090
const urlDoc = page.url();
11191

11292
await page
@@ -133,26 +113,6 @@ test.describe('Doc Visibility: Restricted', () => {
133113

134114
await expect(page.getByRole('heading', { name: docTitle })).toBeVisible();
135115

136-
await page.getByRole('button', { name: 'Share' }).click();
137-
await page
138-
.getByRole('combobox', {
139-
name: 'Visibility',
140-
})
141-
.click();
142-
await page
143-
.getByRole('option', {
144-
name: 'Restricted',
145-
})
146-
.click();
147-
148-
await expect(
149-
page.getByText('The document visibility has been updated.'),
150-
).toBeVisible();
151-
152-
await page.locator('.c__modal__backdrop').click({
153-
position: { x: 0, y: 0 },
154-
});
155-
156116
const urlDoc = page.url();
157117

158118
await page
@@ -182,20 +142,6 @@ test.describe('Doc Visibility: Restricted', () => {
182142
await expect(page.getByRole('heading', { name: docTitle })).toBeVisible();
183143

184144
await page.getByRole('button', { name: 'Share' }).click();
185-
await page
186-
.getByRole('combobox', {
187-
name: 'Visibility',
188-
})
189-
.click();
190-
await page
191-
.getByRole('option', {
192-
name: 'Restricted',
193-
})
194-
.click();
195-
196-
await expect(
197-
page.getByText('The document visibility has been updated.'),
198-
).toBeVisible();
199145

200146
const inputSearch = page.getByLabel(/Find a member to add to the document/);
201147

@@ -389,6 +335,26 @@ test.describe('Doc Visibility: Authenticated', () => {
389335

390336
await expect(page.getByRole('heading', { name: docTitle })).toBeVisible();
391337

338+
await page.getByRole('button', { name: 'Share' }).click();
339+
await page
340+
.getByRole('combobox', {
341+
name: 'Visibility',
342+
})
343+
.click();
344+
await page
345+
.getByRole('option', {
346+
name: 'Authenticated',
347+
})
348+
.click();
349+
350+
await expect(
351+
page.getByText('The document visibility has been updated.'),
352+
).toBeVisible();
353+
354+
await page.locator('.c__modal__backdrop').click({
355+
position: { x: 0, y: 0 },
356+
});
357+
392358
const urlDoc = page.url();
393359

394360
await page
@@ -421,6 +387,26 @@ test.describe('Doc Visibility: Authenticated', () => {
421387

422388
await expect(page.getByRole('heading', { name: docTitle })).toBeVisible();
423389

390+
await page.getByRole('button', { name: 'Share' }).click();
391+
await page
392+
.getByRole('combobox', {
393+
name: 'Visibility',
394+
})
395+
.click();
396+
await page
397+
.getByRole('option', {
398+
name: 'Authenticated',
399+
})
400+
.click();
401+
402+
await expect(
403+
page.getByText('The document visibility has been updated.'),
404+
).toBeVisible();
405+
406+
await page.locator('.c__modal__backdrop').click({
407+
position: { x: 0, y: 0 },
408+
});
409+
424410
const urlDoc = page.url();
425411

426412
await page
@@ -467,6 +453,26 @@ test.describe('Doc Visibility: Authenticated', () => {
467453

468454
await expect(page.getByRole('heading', { name: docTitle })).toBeVisible();
469455

456+
await page.getByRole('button', { name: 'Share' }).click();
457+
await page
458+
.getByRole('combobox', {
459+
name: 'Visibility',
460+
})
461+
.click();
462+
await page
463+
.getByRole('option', {
464+
name: 'Authenticated',
465+
})
466+
.click();
467+
468+
await expect(
469+
page.getByText('The document visibility has been updated.'),
470+
).toBeVisible();
471+
472+
await page.locator('.c__modal__backdrop').click({
473+
position: { x: 0, y: 0 },
474+
});
475+
470476
const urlDoc = page.url();
471477

472478
await page.getByRole('button', { name: 'Share' }).click();

0 commit comments

Comments
 (0)