From e900d9a81ccc3d3dc3e97c154b6e072d87c7e8f4 Mon Sep 17 00:00:00 2001 From: George Mamadashvili Date: Wed, 10 Jul 2024 17:30:59 +0400 Subject: [PATCH] Return false when entity arg is malformed --- docs/reference-guides/data/data-core.md | 4 ++-- packages/core-data/README.md | 4 ++-- packages/core-data/src/selectors.ts | 6 +++--- packages/core-data/src/test/selectors.js | 4 ++-- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/reference-guides/data/data-core.md b/docs/reference-guides/data/data-core.md index 063052d1a43888..23503ce411eda5 100644 --- a/docs/reference-guides/data/data-core.md +++ b/docs/reference-guides/data/data-core.md @@ -23,7 +23,7 @@ _Parameters_ _Returns_ -- `boolean | undefined | null`: Whether or not the user can perform the action, or `undefined` if the OPTIONS request is still being made. +- `boolean | undefined`: Whether or not the user can perform the action, or `undefined` if the OPTIONS request is still being made. ### canUserEditEntityRecord @@ -42,7 +42,7 @@ _Parameters_ _Returns_ -- `boolean | undefined | null`: Whether or not the user can edit, or `undefined` if the OPTIONS request is still being made. +- `boolean | undefined`: Whether or not the user can edit, or `undefined` if the OPTIONS request is still being made. ### getAuthors diff --git a/packages/core-data/README.md b/packages/core-data/README.md index d6e6d97e9a1d77..90f53a61a28331 100644 --- a/packages/core-data/README.md +++ b/packages/core-data/README.md @@ -344,7 +344,7 @@ _Parameters_ _Returns_ -- `boolean | undefined | null`: Whether or not the user can perform the action, or `undefined` if the OPTIONS request is still being made. +- `boolean | undefined`: Whether or not the user can perform the action, or `undefined` if the OPTIONS request is still being made. ### canUserEditEntityRecord @@ -363,7 +363,7 @@ _Parameters_ _Returns_ -- `boolean | undefined | null`: Whether or not the user can edit, or `undefined` if the OPTIONS request is still being made. +- `boolean | undefined`: Whether or not the user can edit, or `undefined` if the OPTIONS request is still being made. ### getAuthors diff --git a/packages/core-data/src/selectors.ts b/packages/core-data/src/selectors.ts index 7c82982553727c..010cf347eee532 100644 --- a/packages/core-data/src/selectors.ts +++ b/packages/core-data/src/selectors.ts @@ -1147,10 +1147,10 @@ export function canUser( action: string, resource: string | Record< string, any >, id?: EntityRecordKey -): boolean | undefined | null { +): boolean | undefined { const isEntity = typeof resource === 'object'; if ( isEntity && ( ! resource.kind || ! resource.name ) ) { - return null; + return false; } const key = ( @@ -1184,7 +1184,7 @@ export function canUserEditEntityRecord( kind: string, name: string, recordId: EntityRecordKey -): boolean | undefined | null { +): boolean | undefined { return canUser( state, 'update', { kind, name, id: recordId } ); } diff --git a/packages/core-data/src/test/selectors.js b/packages/core-data/src/test/selectors.js index b3edbab9b69263..4b5e8417ad2028 100644 --- a/packages/core-data/src/test/selectors.js +++ b/packages/core-data/src/test/selectors.js @@ -698,8 +698,8 @@ describe( 'canUser', () => { const state = deepFreeze( { userPermissions: {}, } ); - expect( canUser( state, 'create', { name: 'media' } ) ).toBe( null ); - expect( canUser( state, 'create', { kind: 'root' } ) ).toBe( null ); + expect( canUser( state, 'create', { name: 'media' } ) ).toBe( false ); + expect( canUser( state, 'create', { kind: 'root' } ) ).toBe( false ); } ); it( 'returns whether an action can be performed', () => {