Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add code to check whether a user is allowed to reject all on the CMP #13183

Merged
merged 4 commits into from
Jan 22, 2025

Conversation

rupertbates
Copy link
Member

@rupertbates rupertbates commented Jan 21, 2025

What does this change?

This PR adds code to retrieve and store a user's 'allow reject all' status from either the user-benefits api or the members-data-api (depending on the AB cohort the user is in).

Why?

To enable us to tell which version of the consent management banner to show for signed in users, we need to check whether they are subscribed to either a product which gives them ad-free reading or to Guardian Ad-Lite.

This code does that check and then caches that result in a cookie which is refreshed every 24hrs in the same way as the other user features cookies (ad-free, hide support messaging).

@rupertbates rupertbates requested a review from a team as a code owner January 21, 2025 15:38
Copy link

Hello 👋! When you're ready to run Chromatic, please apply the run_chromatic label to this PR.

You will need to reapply the label each time you want to run Chromatic.

Click here to see the Chromatic project.

Copy link

github-actions bot commented Jan 21, 2025

Size Change: +107 B (+0.01%)

Total Size: 885 kB

Filename Size Change
dotcom-rendering/dist/index.client.web.********************.js 45.2 kB +107 B (+0.24%)
ℹ️ View Unchanged
Filename Size
dotcom-rendering/dist/1076.client.web.********************.js 3.41 kB
dotcom-rendering/dist/1101.client.web.********************.js 4.81 kB
dotcom-rendering/dist/1262.client.web.********************.js 4.49 kB
dotcom-rendering/dist/1401.client.web.********************.js 441 B
dotcom-rendering/dist/1427.client.web.********************.js 4.94 kB
dotcom-rendering/dist/1477.client.web.********************.js 3.52 kB
dotcom-rendering/dist/1669.client.web.********************.js 12.3 kB
dotcom-rendering/dist/1714.client.web.********************.js 2.87 kB
dotcom-rendering/dist/2188.client.web.********************.js 6.52 kB
dotcom-rendering/dist/2444.client.web.********************.js 2.67 kB
dotcom-rendering/dist/2482.client.web.********************.js 44.8 kB
dotcom-rendering/dist/280.client.web.********************.js 531 B
dotcom-rendering/dist/3213.client.web.********************.js 5.42 kB
dotcom-rendering/dist/342.client.web.********************.js 4.18 kB
dotcom-rendering/dist/3524.client.web.********************.js 3.51 kB
dotcom-rendering/dist/3769.client.web.********************.js 22.7 kB
dotcom-rendering/dist/3789.client.web.********************.js 3.58 kB
dotcom-rendering/dist/39.client.web.********************.js 3.06 kB
dotcom-rendering/dist/3937.client.web.********************.js 3.85 kB
dotcom-rendering/dist/4170.client.web.********************.js 16.3 kB
dotcom-rendering/dist/4285.client.web.********************.js 6.55 kB
dotcom-rendering/dist/4501.client.web.********************.js 4.29 kB
dotcom-rendering/dist/4684.client.web.********************.js 3.17 kB
dotcom-rendering/dist/4878.client.web.********************.js 8.08 kB
dotcom-rendering/dist/4943.client.web.********************.js 3.69 kB
dotcom-rendering/dist/4982.client.web.********************.js 13.9 kB
dotcom-rendering/dist/5095.client.web.********************.js 4.17 kB
dotcom-rendering/dist/5223.client.web.********************.js 3.27 kB
dotcom-rendering/dist/5598.client.web.********************.js 4.49 kB
dotcom-rendering/dist/6021.client.web.********************.js 11.1 kB
dotcom-rendering/dist/6061.client.web.********************.js 3.63 kB
dotcom-rendering/dist/6073.client.web.********************.js 3.53 kB
dotcom-rendering/dist/6163.client.web.********************.js 3.83 kB
dotcom-rendering/dist/6577.client.web.********************.js 5.41 kB
dotcom-rendering/dist/6627.client.web.********************.js 10.4 kB
dotcom-rendering/dist/6876.client.web.********************.js 2.67 kB
dotcom-rendering/dist/6882.client.web.********************.js 12.7 kB
dotcom-rendering/dist/6903.client.web.********************.js 3.21 kB
dotcom-rendering/dist/6931.client.web.********************.js 2.63 kB
dotcom-rendering/dist/6940.client.web.********************.js 526 B
dotcom-rendering/dist/7116.client.web.********************.js 23 kB
dotcom-rendering/dist/719.client.web.********************.js 3.49 kB
dotcom-rendering/dist/7350.client.web.********************.js 3.32 kB
dotcom-rendering/dist/7364.client.web.********************.js 3.22 kB
dotcom-rendering/dist/7540.client.web.********************.js 2.72 kB
dotcom-rendering/dist/7546.client.web.********************.js 7.36 kB
dotcom-rendering/dist/7861.client.web.********************.js 619 B
dotcom-rendering/dist/8030.client.web.********************.js 4.18 kB
dotcom-rendering/dist/8067.client.web.********************.js 3.39 kB
dotcom-rendering/dist/8209.client.web.********************.js 3.64 kB
dotcom-rendering/dist/8592.client.web.********************.js 157 B
dotcom-rendering/dist/895.client.web.********************.js 5.14 kB
dotcom-rendering/dist/9072.client.web.********************.js 2.61 kB
dotcom-rendering/dist/9242.client.web.********************.js 3.76 kB
dotcom-rendering/dist/9288.client.web.********************.js 2.51 kB
dotcom-rendering/dist/9362.client.web.********************.js 20.3 kB
dotcom-rendering/dist/9558.client.web.********************.js 3.53 kB
dotcom-rendering/dist/9665.client.web.********************.js 4.04 kB
dotcom-rendering/dist/9735.client.web.********************.js 4.46 kB
dotcom-rendering/dist/9766.client.web.********************.js 3.4 kB
dotcom-rendering/dist/9790.client.web.********************.js 3.58 kB
dotcom-rendering/dist/Accessibility-importable.client.web.********************.js 6.71 kB
dotcom-rendering/dist/AdBlockAsk-importable.client.web.********************.js 2.85 kB
dotcom-rendering/dist/AdPortals-importable.client.web.********************.js 4.85 kB
dotcom-rendering/dist/AlreadyVisited-importable.client.web.********************.js 424 B
dotcom-rendering/dist/AppsEpic-importable.client.web.********************.js 3.63 kB
dotcom-rendering/dist/AppsFooter-importable.client.web.********************.js 2.7 kB
dotcom-rendering/dist/AppsLightboxImage-importable.client.web.********************.js 2.66 kB
dotcom-rendering/dist/AppsLightboxImageStore-importable.client.web.********************.js 2.55 kB
dotcom-rendering/dist/AudioAtomWrapper-importable.client.web.********************.js 2.59 kB
dotcom-rendering/dist/AudioPlayerWrapper-importable.client.web.********************.js 6.33 kB
dotcom-rendering/dist/AustralianTerritorySwitcher-importable.client.web.********************.js 2 kB
dotcom-rendering/dist/Branding-importable.client.web.********************.js 2.88 kB
dotcom-rendering/dist/braze-web-sdk-core.client.web.********************.js 37.2 kB
dotcom-rendering/dist/BrazeMessaging-importable.client.web.********************.js 1.97 kB
dotcom-rendering/dist/CalloutBlockComponent-importable.client.web.********************.js 6.74 kB
dotcom-rendering/dist/CalloutEmbedBlockComponent-importable.client.web.********************.js 5.77 kB
dotcom-rendering/dist/CardCommentCount-importable.client.web.********************.js 2.66 kB
dotcom-rendering/dist/Carousel-importable.client.web.********************.js 7.03 kB
dotcom-rendering/dist/CarouselForNewsletters-importable.client.web.********************.js 5.15 kB
dotcom-rendering/dist/ChartAtom-importable.client.web.********************.js 538 B
dotcom-rendering/dist/CommentCount-importable.client.web.********************.js 2.29 kB
dotcom-rendering/dist/CrosswordComponent-importable.client.web.********************.js 284 B
dotcom-rendering/dist/DiscussionApps-importable.client.web.********************.js 1.93 kB
dotcom-rendering/dist/DiscussionMeta-importable.client.web.********************.js 2.44 kB
dotcom-rendering/dist/DiscussionWeb-importable.client.web.********************.js 1.74 kB
dotcom-rendering/dist/DocumentBlockComponent-importable.client.web.********************.js 2.82 kB
dotcom-rendering/dist/Dropdown-importable.client.web.********************.js 1.72 kB
dotcom-rendering/dist/EditionSwitcherBanner-importable.client.web.********************.js 3.49 kB
dotcom-rendering/dist/EmbedBlockComponent-importable.client.web.********************.js 3.94 kB
dotcom-rendering/dist/EnhancePinnedPost-importable.client.web.********************.js 2.02 kB
dotcom-rendering/dist/FetchOnwardsData-importable.client.web.********************.js 1.94 kB
dotcom-rendering/dist/FilterKeyEventsToggle-importable.client.web.********************.js 3.8 kB
dotcom-rendering/dist/FocusStyles-importable.client.web.********************.js 617 B
dotcom-rendering/dist/FollowWrapper-importable.client.web.********************.js 2.52 kB
dotcom-rendering/dist/FooterLabel-importable.client.web.********************.js 343 B
dotcom-rendering/dist/FooterReaderRevenueLinks-importable.client.web.********************.js 3.5 kB
dotcom-rendering/dist/frameworks.client.web.********************.js 20.9 kB
dotcom-rendering/dist/FrontSubNav-importable.client.web.********************.js 7.37 kB
dotcom-rendering/dist/GetCricketScoreboard-importable.client.web.********************.js 6.26 kB
dotcom-rendering/dist/GetMatchNav-importable.client.web.********************.js 11.4 kB
dotcom-rendering/dist/GetMatchStats-importable.client.web.********************.js 7.97 kB
dotcom-rendering/dist/GetMatchTabs-importable.client.web.********************.js 2.58 kB
dotcom-rendering/dist/guardian-braze-components-banner.client.web.********************.js 15.8 kB
dotcom-rendering/dist/guardian-braze-components-end-of-article.client.web.********************.js 10.2 kB
dotcom-rendering/dist/GuideAtomWrapper-importable.client.web.********************.js 783 B
dotcom-rendering/dist/InstagramBlockComponent-importable.client.web.********************.js 2.9 kB
dotcom-rendering/dist/InteractiveAtomMessenger-importable.client.web.********************.js 853 B
dotcom-rendering/dist/InteractiveBlockComponent-importable.client.web.********************.js 8.55 kB
dotcom-rendering/dist/InteractiveContentsBlockComponent-importable.client.web.********************.js 3.74 kB
dotcom-rendering/dist/KeyEventsCarousel-importable.client.web.********************.js 5.68 kB
dotcom-rendering/dist/KnowledgeQuizAtom-importable.client.web.********************.js 3.55 kB
dotcom-rendering/dist/LatestLinks-importable.client.web.********************.js 6.38 kB
dotcom-rendering/dist/LightboxHash-importable.client.web.********************.js 436 B
dotcom-rendering/dist/LightboxLayout-importable.client.web.********************.js 6.52 kB
dotcom-rendering/dist/LiveBlogEpic-importable.client.web.********************.js 3.55 kB
dotcom-rendering/dist/LiveblogNotifications-importable.client.web.********************.js 4.82 kB
dotcom-rendering/dist/Liveness-importable.client.web.********************.js 4.72 kB
dotcom-rendering/dist/ManyNewsletterSignUp-importable.client.web.********************.js 7.6 kB
dotcom-rendering/dist/MapEmbedBlockComponent-importable.client.web.********************.js 5.96 kB
dotcom-rendering/dist/Metrics-importable.client.web.********************.js 2.69 kB
dotcom-rendering/dist/MostViewedFooter-importable.client.web.********************.js 3.85 kB
dotcom-rendering/dist/MostViewedFooterData-importable.client.web.********************.js 5.94 kB
dotcom-rendering/dist/MostViewedRightWithAd-importable.client.web.********************.js 5.12 kB
dotcom-rendering/dist/OnwardsUpper-importable.client.web.********************.js 5.32 kB
dotcom-rendering/dist/PersonalityQuizAtom-importable.client.web.********************.js 3.72 kB
dotcom-rendering/dist/ProfileAtom-importable.client.web.********************.js 543 B
dotcom-rendering/dist/ProfileAtomWrapper-importable.client.web.********************.js 802 B
dotcom-rendering/dist/PulsingDot-importable.client.web.********************.js 749 B
dotcom-rendering/dist/QandaAtom-importable.client.web.********************.js 543 B
dotcom-rendering/dist/ReaderRevenueDev-importable.client.web.********************.js 468 B
dotcom-rendering/dist/readerRevenueDevUtils.client.web.********************.js 1.75 kB
dotcom-rendering/dist/RelativeTime-importable.client.web.********************.js 2.53 kB
dotcom-rendering/dist/RichLinkComponent-importable.client.web.********************.js 6.11 kB
dotcom-rendering/dist/ScrollableFeature-importable.client.web.********************.js 7.1 kB
dotcom-rendering/dist/ScrollableHighlights-importable.client.web.********************.js 6.12 kB
dotcom-rendering/dist/ScrollableMedium-importable.client.web.********************.js 4.4 kB
dotcom-rendering/dist/ScrollableSmall-importable.client.web.********************.js 4.37 kB
dotcom-rendering/dist/SecureSignup-importable.client.web.********************.js 4.1 kB
dotcom-rendering/dist/SendTargetingParams-importable.client.web.********************.js 2.22 kB
dotcom-rendering/dist/sentry.client.web.********************.js 794 B
dotcom-rendering/dist/SetABTests-importable.client.web.********************.js 3.8 kB
dotcom-rendering/dist/SetAdTargeting-importable.client.web.********************.js 485 B
dotcom-rendering/dist/ShareButton-importable.client.web.********************.js 919 B
dotcom-rendering/dist/shimport.client.web.********************.js 2.8 kB
dotcom-rendering/dist/ShowHideContainers-importable.client.web.********************.js 658 B
dotcom-rendering/dist/ShowMore-importable.client.web.********************.js 2.1 kB
dotcom-rendering/dist/SignInGateMain.client.web.********************.js 4.46 kB
dotcom-rendering/dist/SignInGateMainCheckoutComplete.client.web.********************.js 5.56 kB
dotcom-rendering/dist/SignInGateSelector-importable.client.web.********************.js 5.83 kB
dotcom-rendering/dist/SlideshowCarousel-importable.client.web.********************.js 4.37 kB
dotcom-rendering/dist/SlotBodyEnd-importable.client.web.********************.js 4.84 kB
dotcom-rendering/dist/SpotifyBlockComponent-importable.client.web.********************.js 5.78 kB
dotcom-rendering/dist/StickyBottomBanner-importable.client.web.********************.js 6.15 kB
dotcom-rendering/dist/StickyLiveblogAskWrapper-importable.client.web.********************.js 8.14 kB
dotcom-rendering/dist/SubNav-importable.client.web.********************.js 2.41 kB
dotcom-rendering/dist/TableOfContents-importable.client.web.********************.js 3.48 kB
dotcom-rendering/dist/TimelineAtom-importable.client.web.********************.js 1.23 kB
dotcom-rendering/dist/Titlepiece-importable.client.web.********************.js 13.5 kB
dotcom-rendering/dist/TopBar-importable.client.web.********************.js 9.29 kB
dotcom-rendering/dist/TopBarSupport-importable.client.web.********************.js 2.5 kB
dotcom-rendering/dist/TweetBlockComponent-importable.client.web.********************.js 1.13 kB
dotcom-rendering/dist/UnsafeEmbedBlockComponent-importable.client.web.********************.js 2.91 kB
dotcom-rendering/dist/VideoFacebookBlockComponent-importable.client.web.********************.js 5.97 kB
dotcom-rendering/dist/VineBlockComponent-importable.client.web.********************.js 2.78 kB
dotcom-rendering/dist/YoutubeBlockComponent-importable.client.web.********************.js 4.38 kB

compressed-size-action

@rupertbates rupertbates added the run_chromatic Runs chromatic when label is applied label Jan 21, 2025
@github-actions github-actions bot removed the run_chromatic Runs chromatic when label is applied label Jan 21, 2025
@@ -86,12 +93,18 @@ const persistResponse = (userBenefitsResponse: UserBenefits) => {
} else if (adFreeDataIsPresent() && !forcedAdFreeMode) {
removeAdFreeCookie();
}
if (userBenefitsResponse.allowRejectAll) {
setAllowRejectAllCookie(2);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why 2 days?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure really, I guess to give a bit of wiggle room past the 24hr refresh period? This is the same as the ad-free cookie which was already in place so I used the same value.

I'm going to do a bit of an investigation into the expiry times we set on these cookies and when we explicitly delete them, so this may change in a future PR

@rupertbates rupertbates added the run_chromatic Runs chromatic when label is applied label Jan 22, 2025
@github-actions github-actions bot removed the run_chromatic Runs chromatic when label is applied label Jan 22, 2025
@rupertbates rupertbates merged commit 1d6fd98 into main Jan 22, 2025
31 checks passed
@rupertbates rupertbates deleted the allow-reject-all branch January 22, 2025 11:59
@prout-bot
Copy link

Seen on PROD (merged by @rupertbates 7 minutes and 55 seconds ago) Please check your changes!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants