From c197e47ece9504cc9b1820bdf52959509b5049de Mon Sep 17 00:00:00 2001 From: adguernier Date: Tue, 20 Jun 2023 11:38:24 +0200 Subject: [PATCH 01/12] fix a typo: section instead of Section --- docs/AuthRBAC.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/AuthRBAC.md b/docs/AuthRBAC.md index b4a911cf90b..a93025b766c 100644 --- a/docs/AuthRBAC.md +++ b/docs/AuthRBAC.md @@ -1036,8 +1036,8 @@ const authProvider = { // 'products.description' is missing { action: 'write', resource: 'products.thumbnail' }, // 'products.image' is missing - { action: 'write', resource: 'products.Section.description' }, - { action: 'write', resource: 'products.Section.images' }, + { action: 'write', resource: 'products.section.description' }, + { action: 'write', resource: 'products.section.images' }, // 'products.Section.stock' is missing ]), }; From befa445d194137904c9ccb35b6ab4929e452724d Mon Sep 17 00:00:00 2001 From: adguernier Date: Tue, 20 Jun 2023 11:39:35 +0200 Subject: [PATCH 02/12] remove import WizardFormStep because is useless --- docs/AuthRBAC.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/AuthRBAC.md b/docs/AuthRBAC.md index a93025b766c..58a73cb73d4 100644 --- a/docs/AuthRBAC.md +++ b/docs/AuthRBAC.md @@ -1193,7 +1193,7 @@ To learn more about the permissions format, please refer to the [`@react-admin/r {% raw %} ```tsx import { Edit, TextInput } from 'react-admin'; -import { WizardForm, WizardFormStep } from '@react-admin/ra-enterprise'; +import { WizardForm } from '@react-admin/ra-enterprise'; const authProvider = { // ... From 22eee075c641da588460c48e1221d302f80e3bb2 Mon Sep 17 00:00:00 2001 From: adguernier Date: Tue, 20 Jun 2023 11:49:29 +0200 Subject: [PATCH 03/12] added comment to make clearer the use of permissions on tabs, panel, section and step --- docs/AuthRBAC.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/docs/AuthRBAC.md b/docs/AuthRBAC.md index 58a73cb73d4..3053cffbe75 100644 --- a/docs/AuthRBAC.md +++ b/docs/AuthRBAC.md @@ -651,7 +651,9 @@ const authProvider = { // 'products.description' is missing { action: 'read', resource: 'products.thumbnail' }, // 'products.image' is missing + // note that the tab with the name 'description' will be displayed { action: 'read', resource: 'products.tab.description' }, + // note that the tab with the name 'images' will be displayed { action: 'read', resource: 'products.tab.images' }, // 'products.tab.stock' is missing ], @@ -758,7 +760,9 @@ const authProvider = { // 'products.description' is missing { action: 'write', resource: 'products.thumbnail' }, // 'products.image' is missing + // note that the tab with the name 'description' will be displayed { action: 'write', resource: 'products.tab.description' }, + // note that the tab with the name 'images' will be displayed { action: 'write', resource: 'products.tab.images' }, // 'products.tab.stock' is missing ], @@ -813,7 +817,9 @@ const authProvider = { // 'products.description' is missing { action: 'write', resource: 'products.thumbnail' }, // 'products.image' is missing + // note that the tab with the name 'description' will be displayed { action: 'write', resource: 'products.tab.description' }, + // note that the tab with the name 'images' will be displayed { action: 'write', resource: 'products.tab.images' }, // 'products.tab.stock' is missing ], @@ -870,7 +876,9 @@ const authProvider = { // 'products.description' is missing { action: 'write', resource: 'products.thumbnail' }, // 'products.image' is missing + // note that the panel with the name 'description' will be displayed { action: 'write', resource: 'products.panel.description' }, + // note that the panel with the name 'images' will be displayed { action: 'write', resource: 'products.panel.images' }, // 'products.panel.stock' is missing ]), @@ -922,7 +930,9 @@ const authProvider = { // 'products.description' is missing { action: 'write', resource: 'products.thumbnail' }, // 'products.image' is missing + // note that the panel with the name 'description' will be displayed { action: 'write', resource: 'products.panel.description' }, + // note that the panel with the name 'images' will be displayed { action: 'write', resource: 'products.panel.images' }, // 'products.panel.stock' is missing ]), @@ -977,7 +987,9 @@ const authProvider = { // 'products.description' is missing { action: 'write', resource: 'products.thumbnail' }, // 'products.image' is missing + // note that the section with the name 'description' will be displayed { action: 'write', resource: 'products.section.description' }, + // note that the section with the name 'images' will be displayed { action: 'write', resource: 'products.section.images' }, // 'products.section.stock' is missing ]), @@ -1036,7 +1048,9 @@ const authProvider = { // 'products.description' is missing { action: 'write', resource: 'products.thumbnail' }, // 'products.image' is missing + // note that the section with the name 'description' will be displayed { action: 'write', resource: 'products.section.description' }, + // note that the section with the name 'images' will be displayed { action: 'write', resource: 'products.section.images' }, // 'products.Section.stock' is missing ]), @@ -1089,7 +1103,9 @@ const authProvider = { // 'products.description' is missing { action: 'write', resource: 'products.thumbnail' }, // 'products.image' is missing + // note that the panel with the name 'description' will be displayed { action: 'write', resource: 'products.panel.description' }, + // note that the panel with the name 'images' will be displayed { action: 'write', resource: 'products.panel.images' }, // 'products.panel.stock' is missing ]), @@ -1147,7 +1163,9 @@ const authProvider = { // 'products.description' is missing { action: 'write', resource: 'products.thumbnail' }, // 'products.image' is missing + // note that the step with the name 'description' will be displayed { action: 'write', resource: 'products.step.description' }, + // note that the step with the name 'images' will be displayed { action: 'write', resource: 'products.step.images' }, // 'products.step.stock' is missing ]), @@ -1205,7 +1223,9 @@ const authProvider = { // 'products.description' is missing { action: 'write', resource: 'products.thumbnail' }, // 'products.image' is missing + // note that the step with the name 'description' will be displayed { action: 'write', resource: 'products.step.description' }, + // note that the step with the name 'images' will be displayed { action: 'write', resource: 'products.step.images' }, // 'products.step.stock' is missing ]), From 2d822296ad4466d3af345ec6d0c4ba9c813cd41e Mon Sep 17 00:00:00 2001 From: adguernier Date: Tue, 20 Jun 2023 12:09:22 +0200 Subject: [PATCH 04/12] add a paragraph to explain permission with Tab name prop --- docs/AuthRBAC.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/AuthRBAC.md b/docs/AuthRBAC.md index 3053cffbe75..d95801ce5e5 100644 --- a/docs/AuthRBAC.md +++ b/docs/AuthRBAC.md @@ -632,7 +632,9 @@ const ProductShow = () => ( Replacement for the `` that only renders a tab if the user has the right permissions. -Add a `name` prop to the Tab to define the resource on which the user needs to have the 'read' permissions for. +Add a `name` prop to the `` to define the resource on which the user needs to have the 'read' permissions for. +Then, to display a particular `` update permissions definition as follows: `{ action: 'read', resource: '${resource}.tab.${source}' }`. +> For instance, to allow user access `` in product resource, add this line in permissions: `{ action: 'read', resource: 'products.tab.description' }`. `` also only renders the child fields for which the user has the 'read' permissions. From 3f7a6459fa9d9b6b733f24e9e49e915663bab3b2 Mon Sep 17 00:00:00 2001 From: adguernier Date: Tue, 20 Jun 2023 12:31:14 +0200 Subject: [PATCH 05/12] change sentence structure as suggested --- docs/AuthRBAC.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/AuthRBAC.md b/docs/AuthRBAC.md index d95801ce5e5..dda3e456213 100644 --- a/docs/AuthRBAC.md +++ b/docs/AuthRBAC.md @@ -632,9 +632,11 @@ const ProductShow = () => ( Replacement for the `` that only renders a tab if the user has the right permissions. -Add a `name` prop to the `` to define the resource on which the user needs to have the 'read' permissions for. -Then, to display a particular `` update permissions definition as follows: `{ action: 'read', resource: '${resource}.tab.${source}' }`. -> For instance, to allow user access `` in product resource, add this line in permissions: `{ action: 'read', resource: 'products.tab.description' }`. +Add a `name` prop to the `` so you can reference it in the permissions. +Then, to allow users to access a particular ``, update the permissions definition as follows: `{ action: 'read', resource: '{RESOURCE}.tab.{NAME}' }`, where `RESOURCE` is the resource name, and `NAME` the name you provided to the ``. + +> For instance, to allow users access to the following tab `` in `product` resource, add this line in permissions: `{ action: 'read', resource: 'products.tab.description' }`. + `` also only renders the child fields for which the user has the 'read' permissions. From 22a5e3c6e4132d78e25aa06cb30026fd15cb8da2 Mon Sep 17 00:00:00 2001 From: adguernier Date: Tue, 20 Jun 2023 14:55:53 +0200 Subject: [PATCH 06/12] add explication text for tab, panel, step, section --- docs/AuthRBAC.md | 34 ++++++++++++++++++++++++++++------ 1 file changed, 28 insertions(+), 6 deletions(-) diff --git a/docs/AuthRBAC.md b/docs/AuthRBAC.md index dda3e456213..b19c38146d1 100644 --- a/docs/AuthRBAC.md +++ b/docs/AuthRBAC.md @@ -632,7 +632,7 @@ const ProductShow = () => ( Replacement for the `` that only renders a tab if the user has the right permissions. -Add a `name` prop to the `` so you can reference it in the permissions. +Add a `name` prop to the `` so you can reference it in the permissions. Then, to allow users to access a particular ``, update the permissions definition as follows: `{ action: 'read', resource: '{RESOURCE}.tab.{NAME}' }`, where `RESOURCE` is the resource name, and `NAME` the name you provided to the ``. > For instance, to allow users access to the following tab `` in `product` resource, add this line in permissions: `{ action: 'read', resource: 'products.tab.description' }`. @@ -802,7 +802,10 @@ const ProductEdit = () => ( Replacement for the default `` that only renders a tab if the user has the right permissions. -Add a `name` prop to the `FormTab` to define the sub-resource that the user needs to have the right permissions for. +Add a `name` prop to the `` so you can reference it in the permissions. +Then, to allow users to access a particular ``, update the permissions definition as follows: `{ action: 'write', resource: '{RESOURCE}.tab.{NAME}' }`, where `RESOURCE` is the resource name, and `NAME` the name you provided to the ``. + +> For instance, to allow users access to the following tab `` in `product` resource, add this line in permissions: `{ action: 'write', resource: 'products.tab.description' }`. `` also only renders the child inputs for which the user has the 'write' permissions. @@ -914,7 +917,12 @@ const ProductEdit = () => ( ### `` Replacement for the default `` that only renders a section if the user has the right permissions. -Add a `name` prop to the `AccordionFormPanel` to define the sub-resource that the user needs to have the right permissions for. + +Add a `name` prop to the `` so you can reference it in the permissions. +Then, to allow users to access a particular ``, update the permissions definition as follows: `{ action: 'write', resource: '{RESOURCE}.panel.{NAME}' }`, where `RESOURCE` is the resource name, and `NAME` the name you provided to the ``. + +> For instance, to allow users access to the following tab `` in `product` resource, add this line in permissions: `{ action: 'write', resource: 'products.panel.description' }`. + `` also only renders the child inputs for which the user has the 'write' permissions. To learn more about the permissions format, please refer to the [`@react-admin/ra-rbac` documentation](https://marmelab.com/ra-enterprise/modules/ra-rbac). @@ -969,7 +977,12 @@ const ProductEdit = () => ( ### `` Replacement for the default `` that only renders a section if the user has the right permissions. -Add a `name` prop to the `AccordionSection` to define the sub-resource that the user needs to have the right permissions for. + +Add a `name` prop to the `` so you can reference it in the permissions. +Then, to allow users to access a particular ``, update the permissions definition as follows: `{ action: 'write', resource: '{RESOURCE}.section.{NAME}' }`, where `RESOURCE` is the resource name, and `NAME` the name you provided to the ``. + +> For instance, to allow users access to the following tab `` in `product` resource, add this line in permissions: `{ action: 'write', resource: 'products.section.description' }`. + `` also only renders the child inputs for which the user has the 'write' permissions. This component is provided by the `@react-admin/ra-enterprise` package. @@ -1086,7 +1099,12 @@ const ProductEdit = () => ( ### `` Replacement for the default `` that only renders a section if the user has the right permissions. -Add a `name` prop to the `LongFormSection` to define the sub-resource that the user needs to have the right permissions for. + +Add a `name` prop to the `` so you can reference it in the permissions. +Then, to allow users to access a particular ``, update the permissions definition as follows: `{ action: 'write', resource: '{RESOURCE}.panel.{NAME}' }`, where `RESOURCE` is the resource name, and `NAME` the name you provided to the ``. + +> For instance, to allow users access to the following tab `` in `product` resource, add this line in permissions: `{ action: 'write', resource: 'products.panel.description' }`. + `` also only renders the child inputs for which the user has the 'write' permissions. This component is provided by the `@react-admin/ra-enterprise` package. @@ -1207,7 +1225,11 @@ Use it with `` from `@react-admin/ra-enterprise` to only display the This component is provided by the `@react-admin/ra-enterprise` package. -Add a `name` prop to the WizardFormStep to define the sub-resource that the user needs to have the right permissions for. +Add a `name` prop to the `` so you can reference it in the permissions. +Then, to allow users to access a particular ``, update the permissions definition as follows: `{ action: 'write', resource: '{RESOURCE}.step.{NAME}' }`, where `RESOURCE` is the resource name, and `NAME` the name you provided to the ``. + +> For instance, to allow users access to the following tab `` in `product` resource, add this line in permissions: `{ action: 'write', resource: 'products.step.description' }`. + `` also only renders the child inputs for which the user has the 'write' permissions. To learn more about the permissions format, please refer to the [`@react-admin/ra-rbac` documentation](https://marmelab.com/ra-enterprise/modules/ra-rbac). From 9330e7bdffab80cf3db1c979b5a2630c8ce7c991 Mon Sep 17 00:00:00 2001 From: adguernier Date: Tue, 20 Jun 2023 14:56:32 +0200 Subject: [PATCH 07/12] example with WizardFormStep instead WizardForm.Step as previous examples --- docs/AuthRBAC.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/AuthRBAC.md b/docs/AuthRBAC.md index b19c38146d1..0d2dff1b376 100644 --- a/docs/AuthRBAC.md +++ b/docs/AuthRBAC.md @@ -1237,7 +1237,7 @@ To learn more about the permissions format, please refer to the [`@react-admin/r {% raw %} ```tsx import { Edit, TextInput } from 'react-admin'; -import { WizardForm } from '@react-admin/ra-enterprise'; +import { WizardForm, WizardFormStep } from '@react-admin/ra-enterprise'; const authProvider = { // ... @@ -1260,22 +1260,22 @@ const authProvider = { const ProductCreate = () => ( - + // not displayed - - + + // not displayed - + // not displayed - + - + ); From 40ed21968c423ae14559193643df4e4e45767afa Mon Sep 17 00:00:00 2001 From: adguernier Date: Tue, 20 Jun 2023 15:35:05 +0200 Subject: [PATCH 08/12] replace WizardFormStep by WizardForm.Step --- docs/AuthRBAC.md | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/docs/AuthRBAC.md b/docs/AuthRBAC.md index 0d2dff1b376..96c3841c00e 100644 --- a/docs/AuthRBAC.md +++ b/docs/AuthRBAC.md @@ -1218,26 +1218,24 @@ const ProductCreate = () => ( ``` {% endraw %} -### `` +### `` -Replacement for the default `` that only renders a step if the user has the right permissions. +Replacement for the default `` that only renders a step if the user has the right permissions. Use it with `` from `@react-admin/ra-enterprise` to only display the steps the user has access to in the stepper. -This component is provided by the `@react-admin/ra-enterprise` package. - -Add a `name` prop to the `` so you can reference it in the permissions. -Then, to allow users to access a particular ``, update the permissions definition as follows: `{ action: 'write', resource: '{RESOURCE}.step.{NAME}' }`, where `RESOURCE` is the resource name, and `NAME` the name you provided to the ``. +Add a `name` prop to the `` so you can reference it in the permissions. +Then, to allow users to access a particular ``, update the permissions definition as follows: `{ action: 'write', resource: '{RESOURCE}.step.{NAME}' }`, where `RESOURCE` is the resource name, and `NAME` the name you provided to the ``. -> For instance, to allow users access to the following tab `` in `product` resource, add this line in permissions: `{ action: 'write', resource: 'products.step.description' }`. +> For instance, to allow users access to the following tab `` in `product` resource, add this line in permissions: `{ action: 'write', resource: 'products.step.description' }`. -`` also only renders the child inputs for which the user has the 'write' permissions. +`` also only renders the child inputs for which the user has the 'write' permissions. To learn more about the permissions format, please refer to the [`@react-admin/ra-rbac` documentation](https://marmelab.com/ra-enterprise/modules/ra-rbac). {% raw %} ```tsx import { Edit, TextInput } from 'react-admin'; -import { WizardForm, WizardFormStep } from '@react-admin/ra-enterprise'; +import { WizardForm } from '@react-admin/ra-enterprise'; const authProvider = { // ... @@ -1260,22 +1258,22 @@ const authProvider = { const ProductCreate = () => ( - + // not displayed - - + + // not displayed - + // not displayed - + - + ); From ee460e349a7763b9ee942ff198f9a3ef34b5c1fb Mon Sep 17 00:00:00 2001 From: adguernier Date: Tue, 20 Jun 2023 15:37:27 +0200 Subject: [PATCH 09/12] replace panel in LongFormSection by section --- docs/AuthRBAC.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/AuthRBAC.md b/docs/AuthRBAC.md index 96c3841c00e..800e22359c6 100644 --- a/docs/AuthRBAC.md +++ b/docs/AuthRBAC.md @@ -1125,10 +1125,10 @@ const authProvider = { // 'products.description' is missing { action: 'write', resource: 'products.thumbnail' }, // 'products.image' is missing - // note that the panel with the name 'description' will be displayed - { action: 'write', resource: 'products.panel.description' }, - // note that the panel with the name 'images' will be displayed - { action: 'write', resource: 'products.panel.images' }, + // note that the section with the name 'description' will be displayed + { action: 'write', resource: 'products.section.description' }, + // note that the section with the name 'images' will be displayed + { action: 'write', resource: 'products.section.images' }, // 'products.panel.stock' is missing ]), }; From c177f8022019e0b838d7ae7c564597937a6ed2fc Mon Sep 17 00:00:00 2001 From: adguernier Date: Tue, 20 Jun 2023 15:40:31 +0200 Subject: [PATCH 10/12] renamen LongFormSection to LongForm.Section --- docs/AuthRBAC.md | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/docs/AuthRBAC.md b/docs/AuthRBAC.md index 800e22359c6..3b8c0fb8a0a 100644 --- a/docs/AuthRBAC.md +++ b/docs/AuthRBAC.md @@ -1096,24 +1096,23 @@ const ProductEdit = () => ( ``` {% endraw %} -### `` +### `` -Replacement for the default `` that only renders a section if the user has the right permissions. +Replacement for the default `` that only renders a section if the user has the right permissions. +Use it with `` from `@react-admin/ra-enterprise` to only display the section the user has access to in the form. -Add a `name` prop to the `` so you can reference it in the permissions. -Then, to allow users to access a particular ``, update the permissions definition as follows: `{ action: 'write', resource: '{RESOURCE}.panel.{NAME}' }`, where `RESOURCE` is the resource name, and `NAME` the name you provided to the ``. +Add a `name` prop to the `` so you can reference it in the permissions. +Then, to allow users to access a particular ``, update the permissions definition as follows: `{ action: 'write', resource: '{RESOURCE}.panel.{NAME}' }`, where `RESOURCE` is the resource name, and `NAME` the name you provided to the ``. -> For instance, to allow users access to the following tab `` in `product` resource, add this line in permissions: `{ action: 'write', resource: 'products.panel.description' }`. +> For instance, to allow users access to the following tab `` in `product` resource, add this line in permissions: `{ action: 'write', resource: 'products.panel.description' }`. -`` also only renders the child inputs for which the user has the 'write' permissions. - -This component is provided by the `@react-admin/ra-enterprise` package. +`` also only renders the child inputs for which the user has the 'write' permissions. To learn more about the permissions format, please refer to the [`@react-admin/ra-rbac` documentation](https://marmelab.com/ra-enterprise/modules/ra-rbac). {% raw %} ```tsx -import { LongForm, LongFormSection } from '@react-admin/ra-enterprise'; +import { LongForm } from '@react-admin/ra-enterprise'; const authProvider = { // ... @@ -1136,22 +1135,22 @@ const authProvider = { const ProductEdit = () => ( - + // not displayed - - + + // not displayed - + // not displayed - + - + ); From 6cc584cfd170faf721b35452ab22ab2a7cfc77f8 Mon Sep 17 00:00:00 2001 From: adguernier Date: Tue, 20 Jun 2023 15:42:55 +0200 Subject: [PATCH 11/12] fix typo in LongForm.Section --- docs/AuthRBAC.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/AuthRBAC.md b/docs/AuthRBAC.md index 3b8c0fb8a0a..184ac5b0949 100644 --- a/docs/AuthRBAC.md +++ b/docs/AuthRBAC.md @@ -1102,9 +1102,9 @@ Replacement for the default `` that only renders a section if Use it with `` from `@react-admin/ra-enterprise` to only display the section the user has access to in the form. Add a `name` prop to the `` so you can reference it in the permissions. -Then, to allow users to access a particular ``, update the permissions definition as follows: `{ action: 'write', resource: '{RESOURCE}.panel.{NAME}' }`, where `RESOURCE` is the resource name, and `NAME` the name you provided to the ``. +Then, to allow users to access a particular ``, update the permissions definition as follows: `{ action: 'write', resource: '{RESOURCE}.section.{NAME}' }`, where `RESOURCE` is the resource name, and `NAME` the name you provided to the ``. -> For instance, to allow users access to the following tab `` in `product` resource, add this line in permissions: `{ action: 'write', resource: 'products.panel.description' }`. +> For instance, to allow users access to the following tab `` in `product` resource, add this line in permissions: `{ action: 'write', resource: 'products.section.description' }`. `` also only renders the child inputs for which the user has the 'write' permissions. From 29c02f0cfbf062cb8f5ddbf0dd4af548e300e223 Mon Sep 17 00:00:00 2001 From: adguernier Date: Wed, 21 Jun 2023 14:12:07 +0200 Subject: [PATCH 12/12] resource products in plural form --- docs/AuthRBAC.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/AuthRBAC.md b/docs/AuthRBAC.md index 184ac5b0949..2ca631fd276 100644 --- a/docs/AuthRBAC.md +++ b/docs/AuthRBAC.md @@ -635,7 +635,7 @@ Replacement for the `` that only renders a tab if the user Add a `name` prop to the `` so you can reference it in the permissions. Then, to allow users to access a particular ``, update the permissions definition as follows: `{ action: 'read', resource: '{RESOURCE}.tab.{NAME}' }`, where `RESOURCE` is the resource name, and `NAME` the name you provided to the ``. -> For instance, to allow users access to the following tab `` in `product` resource, add this line in permissions: `{ action: 'read', resource: 'products.tab.description' }`. +> For instance, to allow users access to the following tab `` in `products` resource, add this line in permissions: `{ action: 'read', resource: 'products.tab.description' }`. `` also only renders the child fields for which the user has the 'read' permissions. @@ -805,7 +805,7 @@ Replacement for the default `` that only renders a tab if the user has Add a `name` prop to the `` so you can reference it in the permissions. Then, to allow users to access a particular ``, update the permissions definition as follows: `{ action: 'write', resource: '{RESOURCE}.tab.{NAME}' }`, where `RESOURCE` is the resource name, and `NAME` the name you provided to the ``. -> For instance, to allow users access to the following tab `` in `product` resource, add this line in permissions: `{ action: 'write', resource: 'products.tab.description' }`. +> For instance, to allow users access to the following tab `` in `products` resource, add this line in permissions: `{ action: 'write', resource: 'products.tab.description' }`. `` also only renders the child inputs for which the user has the 'write' permissions. @@ -921,7 +921,7 @@ Replacement for the default `` that only renders a section i Add a `name` prop to the `` so you can reference it in the permissions. Then, to allow users to access a particular ``, update the permissions definition as follows: `{ action: 'write', resource: '{RESOURCE}.panel.{NAME}' }`, where `RESOURCE` is the resource name, and `NAME` the name you provided to the ``. -> For instance, to allow users access to the following tab `` in `product` resource, add this line in permissions: `{ action: 'write', resource: 'products.panel.description' }`. +> For instance, to allow users access to the following tab `` in `products` resource, add this line in permissions: `{ action: 'write', resource: 'products.panel.description' }`. `` also only renders the child inputs for which the user has the 'write' permissions. @@ -981,7 +981,7 @@ Replacement for the default `` that only renders a section if Add a `name` prop to the `` so you can reference it in the permissions. Then, to allow users to access a particular ``, update the permissions definition as follows: `{ action: 'write', resource: '{RESOURCE}.section.{NAME}' }`, where `RESOURCE` is the resource name, and `NAME` the name you provided to the ``. -> For instance, to allow users access to the following tab `` in `product` resource, add this line in permissions: `{ action: 'write', resource: 'products.section.description' }`. +> For instance, to allow users access to the following tab `` in `products` resource, add this line in permissions: `{ action: 'write', resource: 'products.section.description' }`. `` also only renders the child inputs for which the user has the 'write' permissions. @@ -1104,7 +1104,7 @@ Use it with `` from `@react-admin/ra-enterprise` to only display the s Add a `name` prop to the `` so you can reference it in the permissions. Then, to allow users to access a particular ``, update the permissions definition as follows: `{ action: 'write', resource: '{RESOURCE}.section.{NAME}' }`, where `RESOURCE` is the resource name, and `NAME` the name you provided to the ``. -> For instance, to allow users access to the following tab `` in `product` resource, add this line in permissions: `{ action: 'write', resource: 'products.section.description' }`. +> For instance, to allow users access to the following tab `` in `products` resource, add this line in permissions: `{ action: 'write', resource: 'products.section.description' }`. `` also only renders the child inputs for which the user has the 'write' permissions. @@ -1225,7 +1225,7 @@ Use it with `` from `@react-admin/ra-enterprise` to only display the Add a `name` prop to the `` so you can reference it in the permissions. Then, to allow users to access a particular ``, update the permissions definition as follows: `{ action: 'write', resource: '{RESOURCE}.step.{NAME}' }`, where `RESOURCE` is the resource name, and `NAME` the name you provided to the ``. -> For instance, to allow users access to the following tab `` in `product` resource, add this line in permissions: `{ action: 'write', resource: 'products.step.description' }`. +> For instance, to allow users access to the following tab `` in `products` resource, add this line in permissions: `{ action: 'write', resource: 'products.step.description' }`. `` also only renders the child inputs for which the user has the 'write' permissions.