Skip to content

Commit 06000b2

Browse files
authored
Fix #11146 Edit permission to everyone should not be set (#11150) (#11171)
1 parent 92d1c43 commit 06000b2

File tree

4 files changed

+55
-1
lines changed

4 files changed

+55
-1
lines changed

web/client/plugins/ResourcesCatalog/components/Permissions.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,7 @@ function Permissions({
265265
<PermissionsRow
266266
{...entry}
267267
onChange={editing ? handleUpdateEntry.bind(null, entry.id) : null}
268-
options={permissionOptions?.default}
268+
options={permissionOptions?.[`entry.name.${entry.name}`] || permissionOptions?.default}
269269
>
270270
{entry.permissions !== 'owner' && editing ?
271271
<>

web/client/plugins/ResourcesCatalog/components/PermissionsRow.jsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ function PermissionsRow({
3333
? (
3434
<Select
3535
clearable={clearable}
36+
disabled={options?.length < 2}
3637
options={options.map(({ value, labelId, label }) => ({ value, label: label ? <span>{label}</span> : <Message msgId={labelId} />}))}
3738
value={permissions}
3839
onChange={(option) => onChange({ permissions: option?.value || '' })}

web/client/plugins/ResourcesCatalog/components/__tests__/Permissions-test.jsx

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,51 @@ describe('Permissions component', () => {
2727
const permissions = document.querySelector('.ms-permissions');
2828
expect(permissions).toBeTruthy();
2929
});
30+
31+
it('should provide different list of permission based on entry name', () => {
32+
ReactDOM.render(<Permissions
33+
editing
34+
compactPermissions={{
35+
entries: [
36+
{
37+
type: 'group',
38+
id: 1,
39+
name: 'everyone',
40+
permissions: 'view'
41+
},
42+
{
43+
type: 'group',
44+
id: 2,
45+
name: 'custom-group',
46+
permissions: 'view'
47+
}
48+
]
49+
}}
50+
permissionOptions={{
51+
'entry.name.everyone': [
52+
{
53+
value: 'view',
54+
labelId: 'resourcesCatalog.viewPermission'
55+
}
56+
],
57+
'default': [
58+
{
59+
value: 'view',
60+
labelId: 'resourcesCatalog.viewPermission'
61+
},
62+
{
63+
value: 'edit',
64+
labelId: 'resourcesCatalog.editPermission'
65+
}
66+
]
67+
}}
68+
/>, document.getElementById('container'));
69+
const permissions = document.querySelector('.ms-permissions');
70+
expect(permissions).toBeTruthy();
71+
const permissionsRows = document.querySelectorAll('.ms-permissions-row');
72+
expect(permissionsRows.length).toBe(2);
73+
expect([...permissionsRows].map(row => row.innerText)).toEqual(['everyone\nresourcesCatalog.viewPermission', 'custom-group\nresourcesCatalog.viewPermission']);
74+
const disabled = permissionsRows[0].querySelector('.is-disabled');
75+
expect(disabled).toBeTruthy();
76+
});
3077
});

web/client/plugins/ResourcesCatalog/containers/ResourcePermissions.jsx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,12 @@ function ResourcePermissions({
118118
});
119119
}}
120120
permissionOptions={{
121+
'entry.name.everyone': [
122+
{
123+
value: 'view',
124+
labelId: 'resourcesCatalog.viewPermission'
125+
}
126+
],
121127
'default': [
122128
{
123129
value: 'view',

0 commit comments

Comments
 (0)