feat(admin): add READ_ALL and ANNOTATE_ALL to groups permission matrix
Adds 'Nur lesen' (READ_ALL) and 'Lesen & Annotieren' (ANNOTATE_ALL) as standard permission options alongside the existing 'Lesen & Schreiben' (WRITE_ALL), ordered from least to most access. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit was merged in pull request #160.
This commit is contained in:
@@ -25,6 +25,8 @@ $effect(() => {
|
||||
});
|
||||
|
||||
const STANDARD_PERMISSIONS: { value: string; label: string }[] = [
|
||||
{ value: 'READ_ALL', label: 'Nur lesen' },
|
||||
{ value: 'ANNOTATE_ALL', label: 'Lesen & Annotieren' },
|
||||
{ value: 'WRITE_ALL', label: 'Lesen & Schreiben' }
|
||||
];
|
||||
|
||||
|
||||
@@ -41,6 +41,42 @@ describe('Admin edit group page – rendering', () => {
|
||||
.element(page.getByRole('link', { name: /Abbrechen/i }))
|
||||
.toHaveAttribute('href', '/admin/groups');
|
||||
});
|
||||
|
||||
it('renders a READ_ALL checkbox in the standard permissions section', async () => {
|
||||
render(Page, { data: baseData, form: null });
|
||||
const cb = document.querySelector<HTMLInputElement>(
|
||||
'input[type="checkbox"][name="permissions"][value="READ_ALL"]'
|
||||
);
|
||||
expect(cb).not.toBeNull();
|
||||
});
|
||||
|
||||
it('renders an ANNOTATE_ALL checkbox in the standard permissions section', async () => {
|
||||
render(Page, { data: baseData, form: null });
|
||||
const cb = document.querySelector<HTMLInputElement>(
|
||||
'input[type="checkbox"][name="permissions"][value="ANNOTATE_ALL"]'
|
||||
);
|
||||
expect(cb).not.toBeNull();
|
||||
});
|
||||
|
||||
it('pre-checks READ_ALL when group has it', async () => {
|
||||
const data = { group: { id: 'g2', name: 'Leser', permissions: ['READ_ALL'] } };
|
||||
render(Page, { data, form: null });
|
||||
const cb = document.querySelector<HTMLInputElement>(
|
||||
'input[type="checkbox"][name="permissions"][value="READ_ALL"]'
|
||||
);
|
||||
expect(cb?.checked).toBe(true);
|
||||
});
|
||||
|
||||
it('pre-checks ANNOTATE_ALL when group has it', async () => {
|
||||
const data = {
|
||||
group: { id: 'g3', name: 'Annotatoren', permissions: ['READ_ALL', 'ANNOTATE_ALL'] }
|
||||
};
|
||||
render(Page, { data, form: null });
|
||||
const cb = document.querySelector<HTMLInputElement>(
|
||||
'input[type="checkbox"][name="permissions"][value="ANNOTATE_ALL"]'
|
||||
);
|
||||
expect(cb?.checked).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
// ─── Unsaved-changes guard ────────────────────────────────────────────────────
|
||||
|
||||
Reference in New Issue
Block a user