From a0919849baf5d95ec734d23e27d4b16fbdb70d17 Mon Sep 17 00:00:00 2001 From: Hussain Thajutheen Date: Thu, 1 Dec 2022 23:30:51 +0530 Subject: [PATCH 1/3] Hide connect GA4 CTA and show a text if no access. --- .../settings/SettingsActiveModule/Header.js | 36 ++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/assets/js/components/settings/SettingsActiveModule/Header.js b/assets/js/components/settings/SettingsActiveModule/Header.js index fb5388878a1..f1c9dd356ea 100644 --- a/assets/js/components/settings/SettingsActiveModule/Header.js +++ b/assets/js/components/settings/SettingsActiveModule/Header.js @@ -50,7 +50,11 @@ import Badge from '../../Badge'; import { trackEvent } from '../../../util'; import useViewContext from '../../../hooks/useViewContext'; import { CORE_FORMS } from '../../../googlesitekit/datastore/forms/constants'; -import { FORM_SETUP } from '../../../modules/analytics/datastore/constants'; +import { + FORM_SETUP, + MODULES_ANALYTICS, +} from '../../../modules/analytics/datastore/constants'; +import { CORE_USER } from '../../../googlesitekit/datastore/user/constants'; const { useSelect, useDispatch } = Data; export default function Header( { slug } ) { @@ -77,6 +81,22 @@ export default function Header( { slug } ) { select( CORE_MODULES ).isModuleConnected( 'analytics-4' ) ); + const loggedInUserID = useSelect( ( select ) => + select( CORE_USER ).getID() + ); + const hasAnalyticsAccess = useSelect( ( select ) => { + if ( ! ( slug === 'analytics' && module?.connected ) ) { + return false; + } + + const moduleOwnerID = select( MODULES_ANALYTICS ).getOwnerID(); + + if ( moduleOwnerID === loggedInUserID ) { + return true; + } + return select( CORE_MODULES ).hasModuleAccess( 'analytics' ); + } ); + const { setValues } = useDispatch( CORE_FORMS ); const openHeader = useCallback( () => { @@ -237,6 +257,7 @@ export default function Header( { slug } ) { { connected && slug === 'analytics' && + hasAnalyticsAccess && ! isGA4Connected && (