[Dashboards] restrict dashboard actions based on object permissions (#17169)

This commit is contained in:
nitin
2026-01-15 19:07:08 +05:30
committed by GitHub
parent f218d652df
commit abdccf2940
@@ -31,11 +31,12 @@ export const DASHBOARD_ACTIONS_CONFIG = inheritActionsFromDefaultConfig({
Icon: IconPencil,
type: ActionType.Standard,
scope: ActionScope.RecordSelection,
shouldBeRegistered: ({ selectedRecord }) =>
shouldBeRegistered: ({ selectedRecord, objectPermissions }) =>
isDefined(selectedRecord) &&
!selectedRecord?.isRemote &&
!isDefined(selectedRecord?.deletedAt) &&
isDefined(selectedRecord?.pageLayoutId),
isDefined(selectedRecord?.pageLayoutId) &&
objectPermissions.canUpdateObjectRecords,
availableOn: [ActionViewType.SHOW_PAGE],
component: <EditDashboardSingleRecordAction />,
},
@@ -49,11 +50,12 @@ export const DASHBOARD_ACTIONS_CONFIG = inheritActionsFromDefaultConfig({
Icon: IconDeviceFloppy,
type: ActionType.Standard,
scope: ActionScope.RecordSelection,
shouldBeRegistered: ({ selectedRecord }) =>
shouldBeRegistered: ({ selectedRecord, objectPermissions }) =>
isDefined(selectedRecord) &&
!selectedRecord?.isRemote &&
!isDefined(selectedRecord?.deletedAt) &&
isDefined(selectedRecord?.pageLayoutId),
isDefined(selectedRecord?.pageLayoutId) &&
objectPermissions.canUpdateObjectRecords,
availableOn: [ActionViewType.PAGE_EDIT_MODE],
component: <SaveDashboardSingleRecordAction />,
},
@@ -66,11 +68,12 @@ export const DASHBOARD_ACTIONS_CONFIG = inheritActionsFromDefaultConfig({
Icon: IconCancel,
type: ActionType.Standard,
scope: ActionScope.RecordSelection,
shouldBeRegistered: ({ selectedRecord }) =>
shouldBeRegistered: ({ selectedRecord, objectPermissions }) =>
isDefined(selectedRecord) &&
!selectedRecord?.isRemote &&
!isDefined(selectedRecord?.deletedAt) &&
isDefined(selectedRecord?.pageLayoutId),
isDefined(selectedRecord?.pageLayoutId) &&
objectPermissions.canUpdateObjectRecords,
availableOn: [ActionViewType.PAGE_EDIT_MODE],
component: <CancelDashboardSingleRecordAction />,
},
@@ -83,11 +86,12 @@ export const DASHBOARD_ACTIONS_CONFIG = inheritActionsFromDefaultConfig({
Icon: IconCopyPlus,
type: ActionType.Standard,
scope: ActionScope.RecordSelection,
shouldBeRegistered: ({ selectedRecord }) =>
shouldBeRegistered: ({ selectedRecord, objectPermissions }) =>
isDefined(selectedRecord) &&
!selectedRecord?.isRemote &&
!isDefined(selectedRecord?.deletedAt) &&
isDefined(selectedRecord?.pageLayoutId),
isDefined(selectedRecord?.pageLayoutId) &&
objectPermissions.canUpdateObjectRecords,
availableOn: [
ActionViewType.INDEX_PAGE_SINGLE_RECORD_SELECTION,
ActionViewType.SHOW_PAGE,