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

Registration block – login with Google #1781

Merged
merged 18 commits into from
Jul 25, 2022

Conversation

adekbadek
Copy link
Member

@adekbadek adekbadek commented Jul 14, 2022

All Submissions:

Changes proposed in this Pull Request:

Adds Google Login to the Reader Registration block. Also adds a np_reader_login_method user meta, to note the login method.

image

This implementation reuses a lot of the code used for processing admin-related Google OAuth used for GAM connection. The differences are:

  • only auth/userinfo.email scope is requested
  • credentials are not saved, since there will be no actions performed on behalf of the user

Closes #1774

How to test the changes in this Pull Request:

  1. Without configuring Google OAuth proxy (no NEWSPACK_GOOGLE_OAUTH_PROXY defined), observe that the Registration block does not feature a "Sign in with Google" button
  2. Configure Google OAuth proxy by providing a NEWSPACK_GOOGLE_OAUTH_PROXY env. variable
  3. Observe the Reader Registration block allows for signing in via Google
  4. After being authenticated, observe the "My Account" page is accessible
  5. Observe in the DB that the np_reader_login_method user meta value is 'google'

Other information:

  • Have you added an explanation of what your changes do and why you'd like us to include them?
  • Have you written new tests for your changes, as applicable?
  • Have you successfully ran tests with your changes locally?

Sorry, something went wrong.

@adekbadek adekbadek linked an issue Jul 14, 2022 that may be closed by this pull request
@yogeshbeniwal
Copy link
Contributor

@adekbadek Is NEWSPACK_GOOGLE_OAUTH_PROXY only available to Newspack hosted sites only?

@adekbadek
Copy link
Member Author

Yes, it's a closed service.

@adekbadek adekbadek force-pushed the feat/google-oauth-for-readers branch from 91d2f12 to c64a77d Compare July 14, 2022 11:25
@adekbadek adekbadek changed the title Feat/google oauth for readers Register block – login with Google Jul 14, 2022
@adekbadek adekbadek changed the title Register block – login with Google Registration block – login with Google Jul 14, 2022
@yogeshbeniwal
Copy link
Contributor

@adekbadek Follow up question. Does that mean login with Google feature won't be available for open source/self hosting?

@adekbadek
Copy link
Member Author

That's correct.

@miguelpeixe miguelpeixe self-requested a review July 14, 2022 14:40
Base automatically changed from feat/reader-activation-tweaks to master July 15, 2022 07:43

Verified

This commit was signed with the committer’s verified signature.
miguelpeixe Miguel Peixe

Verified

This commit was signed with the committer’s verified signature.
miguelpeixe Miguel Peixe
@adekbadek adekbadek force-pushed the feat/google-oauth-for-readers branch from c64a77d to 3edbf9b Compare July 15, 2022 07:45

Verified

This commit was signed with the committer’s verified signature.
miguelpeixe Miguel Peixe
@adekbadek adekbadek marked this pull request as ready for review July 15, 2022 08:09
@adekbadek adekbadek requested a review from a team as a code owner July 15, 2022 08:09
@adekbadek adekbadek added the [Status] Needs Review The issue or pull request needs to be reviewed label Jul 15, 2022
Copy link
Contributor

@dkoo dkoo left a comment

Choose a reason for hiding this comment

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

The login flow works well when Google OAuth is configured correctly. I ran into one hiccup on my local test site, where trying to get the Google auth URL returned a Cannot verify the request is coming from a Newspack site WP error, resulting in a 404. More details below.

Verified

This commit was signed with the committer’s verified signature.
miguelpeixe Miguel Peixe

Verified

This commit was signed with the committer’s verified signature.
miguelpeixe Miguel Peixe
@adekbadek adekbadek requested a review from dkoo July 19, 2022 08:52
$user_logged_in = false !== $user_id;

if ( $user_logged_in ) {
Reader_Activation::save_current_user_login_method( 'registration-block' );
Copy link
Member

Choose a reason for hiding this comment

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

What does storing LOGIN_METHOD determine? Its usage is not clear to me.

Copy link
Member Author

Choose a reason for hiding this comment

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

That's for analytics – in the future we might send this as a custom dimension for GA, or just display in a local dashboard.

}
} );
};
}
} );
} )( window.newspackReaderActivation );
Copy link
Contributor

Choose a reason for hiding this comment

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

I think there's a race condition happening here. Sometimes when I load the page, window.newspackReaderActivation is undefined, which you can confirm by console.logging the value inside this file's IFEE closure. When this happens, the flow is unavailable and nothing happens when you click the "Sign in with Google" button.

Copy link
Member Author

Choose a reason for hiding this comment

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

This should have been resolved by merging the domReady changes from master in (5867cfa).

Copy link
Contributor

Choose a reason for hiding this comment

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

More details in comment below.

Copy link
Contributor

@dkoo dkoo left a comment

Choose a reason for hiding this comment

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

I noticed a few additional issues with the JS this time around. @miguelpeixe's excellent points might also mean the form itself and the JS might need to be refactored further to support the other plugins' needs.

Verified

This commit was signed with the committer’s verified signature.
miguelpeixe Miguel Peixe

Verified

This commit was signed with the committer’s verified signature.
miguelpeixe Miguel Peixe

Verified

This commit was signed with the committer’s verified signature.
miguelpeixe Miguel Peixe
@yogeshbeniwal
Copy link
Contributor

yogeshbeniwal commented Jul 21, 2022

@adekbadek Can we consider making login with google available for open source usage. Site kit plugin do it by making proxy site available in public domain. If that's not feasible, then making reader login compatible with Amazon Cognito will do the job, created a issue #1772 for further discussion on this option.

Verified

This commit was signed with the committer’s verified signature.
miguelpeixe Miguel Peixe

Verified

This commit was signed with the committer’s verified signature.
miguelpeixe Miguel Peixe

Verified

This commit was signed with the committer’s verified signature.
miguelpeixe Miguel Peixe

Verified

This commit was signed with the committer’s verified signature.
miguelpeixe Miguel Peixe

Verified

This commit was signed with the committer’s verified signature.
miguelpeixe Miguel Peixe
@adekbadek
Copy link
Member Author

I've noticed that the changes bricked the admin OAuth flow, fixed in 57fd298

@adekbadek adekbadek requested a review from miguelpeixe July 22, 2022 08:10
Copy link
Member

@miguelpeixe miguelpeixe left a comment

Choose a reason for hiding this comment

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

🎉

The flow is working for both dashboard service connection and reader authentication.

@github-actions github-actions bot added [Status] Approved The pull request has been reviewed and is ready to merge and removed [Status] Needs Review The issue or pull request needs to be reviewed labels Jul 22, 2022
@adekbadek
Copy link
Member Author

@dkoo uncovered a race condition. The Reader Registration block is initiated when the DOM is ready, but it relies on the Reader Activation front-end library, which might not be available just yet due to network conditions. The block should await a "reader activation ready" event to prevent a race condition.

@adekbadek adekbadek added Work In Progress and removed [Status] Approved The pull request has been reviewed and is ready to merge labels Jul 22, 2022
@miguelpeixe
Copy link
Member

miguelpeixe commented Jul 22, 2022

We can tackle it on a separate PR, this issue was not originated here. We must also address #1792

The block should await a "reader activation ready" event to prevent a race condition.

We most likely don't need this, the reader activation library functions are created synchronously. It's the script tag that has the async attribute.

Copy link
Contributor

@dkoo dkoo left a comment

Choose a reason for hiding this comment

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

The block should await a "reader activation ready" event to prevent a race condition.

We most likely don't need this, the reader activation library functions are created synchronously. It's the script tag that has the async attribute.

Great point, but wouldn't the event solve the issue even if one or both script tags have an async attribute?

@adekbadek One more thing on my end aside from the race condition. I'm okay with tackling the race condition in a separate PR in order to close out this PR.

@miguelpeixe
Copy link
Member

Great point, but wouldn't the event solve the issue even if one or both script tags have an async attribute?

Feels overkill if it's just the order of execution of a dependency. The script is not fetched through XHR to require such sophistication.

@github-actions github-actions bot added the [Status] Approved The pull request has been reviewed and is ready to merge label Jul 22, 2022
@adekbadek adekbadek merged commit ed79c5c into master Jul 25, 2022
@adekbadek adekbadek deleted the feat/google-oauth-for-readers branch July 25, 2022 07:19
@adekbadek adekbadek mentioned this pull request Jul 28, 2022
6 tasks
dkoo added a commit that referenced this pull request Aug 5, 2022

Verified

This commit was signed with the committer’s verified signature.
miguelpeixe Miguel Peixe
* feat: set client id cookie; reader activation tweaks (#1780)

* feat(reader-activation): registration auth cookie control (#1787)

* fix(reader-activation): username generation handling (#1789)

* feat(stripe): webhook auto-creation and validation

* feat(reader-activation): account link and auth form (#1754)

Co-authored-by: Adam Boro <[email protected]>

* feat: handle new frequency options in Campaigns dashbaord (#1779)

* feat: handle new frequency options in Campaigns dashbaord

* feat: only enable new frequency options if reader activation flag is on

* feat(registration-block): newsletter subscription (#1778)

* fix(popups): use new Campaigns method for creating donation events on new orders (#1794)

* fix(popups): use new Campaigns method for creating donation events on new orders

* refactor: use action hook instead of calling Campaigns methods directly

* chore: remove unneeded condition

* refactor: use a hook for WooCommerce donations, too

* fix: add client_id to contact info passed from Stripe

* feat(my-account): stripe billing portal link (#1761)

Note: some styling relies on Automattic/newspack-theme#1875

Closes #1742
Closes #1739
Closes #1740
Closes #1741
Closes #1782

* feat(registration-block): login with Google (#1781)

Closes #1774 

Co-authored-by: Miguel Peixe <[email protected]>

* chore(deps): bump @babel/preset-env from 7.18.6 to 7.18.9

Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.18.6 to 7.18.9.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.18.9/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore(deps): bump date-fns from 2.28.0 to 2.29.1

Bumps [date-fns](https://github.com/date-fns/date-fns) from 2.28.0 to 2.29.1.
- [Release notes](https://github.com/date-fns/date-fns/releases)
- [Changelog](https://github.com/date-fns/date-fns/blob/master/CHANGELOG.md)
- [Commits](date-fns/date-fns@v2.28.0...v2.29.1)

---
updated-dependencies:
- dependency-name: date-fns
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore(deps): bump @babel/plugin-transform-runtime from 7.18.6 to 7.18.9

Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-runtime) from 7.18.6 to 7.18.9.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.18.9/packages/babel-plugin-transform-runtime)

---
updated-dependencies:
- dependency-name: "@babel/plugin-transform-runtime"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore(deps): bump stripe/stripe-php from 8.10.0 to 8.11.0

Bumps [stripe/stripe-php](https://github.com/stripe/stripe-php) from 8.10.0 to 8.11.0.
- [Release notes](https://github.com/stripe/stripe-php/releases)
- [Changelog](https://github.com/stripe/stripe-php/blob/master/CHANGELOG.md)
- [Commits](stripe/stripe-php@v8.10.0...v8.11.0)

---
updated-dependencies:
- dependency-name: stripe/stripe-php
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* feat: register anonymous single donors (#1795)

Co-authored-by: Adam Borowski <[email protected]>

* feat(registration-block): editable success state (#1785)

Closes #1768 

Co-authored-by: Thomas Guillot <[email protected]>

* feat(registration-block): add success icon (#1804)

* refactor: remove unneeded prop

* feat: send user metadata to AC (#1793)

* feat: remove reader registration on adding contact via hook

This was causing an infinite loop: Newsletters is triggering
reader registration when a contact is added (`Newspack_Newsletters_Subscription::newspack_registered_reader`). Then, on adding a contact,
registration was triggered again here.

* fix(registration-block): margin for success message (#1808)

* Reader Activation: auth form with third-party and lists subscriptions (#1800)

* feat: tweak registration block styling

* feat(reader-auth): make password login the first option, instead of login link

Closes #1809

* fix(reader-activation): reinitialize auth links after DOM load (#1812)

* fix: ensure scroll on smaller height (#1813)

* feat(reader-activation): settings wizard (#1773)

Co-authored-by: Adam Boro <[email protected]>

* feat: handle contact update w/out lists selection (#1816)

Co-authored-by: Miguel Peixe <[email protected]>

* chore: logger update (#1807)

Co-authored-by: Miguel Peixe <[email protected]>

* feat(reader-activation): disable 3rd party login buttons initially (#1806)

* feat(reader-activation): prevent updating user email in my-account

* feat(reader-activation): activecampaign master list (#1818)

Co-authored-by: Adam Boro <[email protected]>

* chore(deps): bump stripe/stripe-php from 8.11.0 to 8.12.0

Bumps [stripe/stripe-php](https://github.com/stripe/stripe-php) from 8.11.0 to 8.12.0.
- [Release notes](https://github.com/stripe/stripe-php/releases)
- [Changelog](https://github.com/stripe/stripe-php/blob/master/CHANGELOG.md)
- [Commits](stripe/stripe-php@v8.11.0...v8.12.0)

---
updated-dependencies:
- dependency-name: stripe/stripe-php
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* fix(campaigns-wizard): segmentation wording

* feat(rss): adds offset feature (#1790)

Adds offset feature to RSS, allowing better ad integration with RSS feed based emails

* fix(reader-activation): handle no lists config available

* fix: fix fatal error when debug mode active (#1826)

* feat: reorganise donations wizard and use buttongroup for donation type (#1824)

* fix: google auth button type (#1829)

* fix(magic-links): fix email encoding on sent link (#1833)

* fix(registration-block): don't escape html for sign in labels (#1834)

* fix(reader-activation): add metadata to reader registered on donation

* fix(registration-block): render on preview (#1844)

Co-authored-by: Derrick Koo <[email protected]>

* fix(reader-activation): remove async prop from library (#1846)

* feat(analytics): send GA events on the server side (#1828)

* refactor: abstract server-side GA custom event sending

* feat(reader-activation): send custom event to GA on reader registration

* feat: report user login method to GA; refactor how it's stored

* refactor: handle extended data from the newspack_newsletters_contact_data hook

* feat: send NTG custom events on registration, newsletter signup

* fix(my account): handle legacy data (#1823)

* fix(reader-activation): handle modal conflict when auth is triggered from a prompt

Closes #1835

* feat(reader-activation): optimistic account link (#1847)

* fix(google-auth): ensure popup on user click event (#1831)

Co-authored-by: Adam Boro <[email protected]>

* feat(active-campaigns): override is-new-contact for legacy contacts

* feat(active-campaign): metadata improvements (#1851)

* feat: if registering an email that already has an account, show different message (#1849)

* feat: if registering an email that already has an account, show different message

* refactor: use existing var

* feat: replace WooCommerce’s login form with our own (#1854)

* feat: replace WooCommerce’s login form with our own

* fix: use WC method to get account URL

Co-authored-by: Miguel Peixe <[email protected]>

* refactor: call render method from template file

* feat: hide page title on WC account pages

* refactor: restore modal on My Account pages; handle multiple form instancse

* refactor: use $class method to build inline class

Co-authored-by: Miguel Peixe <[email protected]>

* style: remove unneeded padding from inline form

* fix: move handlers and functions outside of loop

* chore: reword auth message for consistency

* fix: avoid JS error if redirect input is null

* fix: avoid JS error if email input is null

Co-authored-by: Miguel Peixe <[email protected]>

* fix(newsletters): use international date format (#1855)

* fix: tweak arguments for magic link client hash (#1862)

* feat(donations): remove defaultFrequency from the configuration (#1814)

It's not configurable. See Automattic/newspack-blocks#1218

* fix(ga): cookie parsing (#1857)

* fix(active-campaign): legacy contacts detection (#1858)

Co-authored-by: Adam Boro <[email protected]>
Co-authored-by: Miguel Peixe <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Thomas Guillot <[email protected]>
Co-authored-by: matticbot <[email protected]>
Co-authored-by: dnalla1928 <[email protected]>
Co-authored-by: Claudiu Lodromanean <[email protected]>
matticbot pushed a commit that referenced this pull request Aug 5, 2022

Verified

This commit was signed with the committer’s verified signature.
miguelpeixe Miguel Peixe
# [1.88.0-alpha.1](v1.87.0...v1.88.0-alpha.1) (2022-08-05)

### Bug Fixes

* **active-campaign:** legacy contacts detection ([#1858](#1858)) ([67640a5](67640a5))
* **campaigns-wizard:** segmentation wording ([ddf61ad](ddf61ad))
* ensure scroll on smaller height ([#1813](#1813)) ([e234e8b](e234e8b))
* fix fatal error when debug mode active ([#1826](#1826)) ([d9388ee](d9388ee))
* **ga:** cookie parsing ([#1857](#1857)) ([a936abd](a936abd))
* google auth button type ([#1829](#1829)) ([3704d9f](3704d9f))
* **google-auth:** ensure popup on user click event ([#1831](#1831)) ([0af9abf](0af9abf))
* **magic-links:** fix email encoding on sent link ([#1833](#1833)) ([8d4756c](8d4756c))
* **my account:** handle legacy data ([#1823](#1823)) ([6816799](6816799))
* **newsletters:** use international date format ([#1855](#1855)) ([4cda57d](4cda57d))
* **popups:** use new Campaigns method for creating donation events on new orders ([#1794](#1794)) ([49dc14c](49dc14c))
* **reader-activation:** add metadata to reader registered on donation ([722724c](722724c))
* **reader-activation:** handle modal conflict when auth is triggered from a prompt ([c2a0141](c2a0141)), closes [#1835](#1835)
* **reader-activation:** handle no lists config available ([23b0249](23b0249))
* **reader-activation:** reinitialize auth links after DOM load ([#1812](#1812)) ([0a4b499](0a4b499))
* **reader-activation:** remove async prop from library ([#1846](#1846)) ([4131ca6](4131ca6))
* **reader-activation:** username generation handling ([#1789](#1789)) ([17edf2a](17edf2a))
* **registration-block:** don't escape html for sign in labels ([#1834](#1834)) ([871300d](871300d))
* **registration-block:** margin for success message ([#1808](#1808)) ([1bfe546](1bfe546))
* **registration-block:** render on preview ([#1844](#1844)) ([87b9be9](87b9be9))
* tweak arguments for magic link client hash ([#1862](#1862)) ([8dcd45e](8dcd45e))

### Features

* **active-campaign:** metadata improvements ([#1851](#1851)) ([48883af](48883af))
* **active-campaigns:** override is-new-contact for legacy contacts ([34dd9a2](34dd9a2))
* **analytics:** send GA events on the server side ([#1828](#1828)) ([3e384e1](3e384e1))
* **donations:** remove defaultFrequency from the configuration ([#1814](#1814)) ([b6aa894](b6aa894))
* handle contact update w/out lists selection ([#1816](#1816)) ([67574d1](67574d1))
* handle new frequency options in Campaigns dashbaord ([#1779](#1779)) ([c770a7d](c770a7d))
* if registering an email that already has an account, show different message ([#1849](#1849)) ([bf48bc4](bf48bc4))
* **my-account:** stripe billing portal link ([#1761](#1761)) ([3e69af1](3e69af1)), closes [#1742](#1742) [#1739](#1739) [#1740](#1740) [#1741](#1741) [#1782](#1782)
* **reader-activation:** account link and auth form ([#1754](#1754)) ([b163664](b163664))
* **reader-activation:** activecampaign master list ([#1818](#1818)) ([ecbbc47](ecbbc47))
* **reader-activation:** disable 3rd party login buttons initially ([#1806](#1806)) ([c806bfe](c806bfe))
* **reader-activation:** optimistic account link ([#1847](#1847)) ([85c550a](85c550a))
* **reader-activation:** prevent updating user email in my-account ([7d49db4](7d49db4))
* **reader-activation:** registration auth cookie control ([#1787](#1787)) ([aeb0b5b](aeb0b5b))
* **reader-activation:** settings wizard ([#1773](#1773)) ([aaff0de](aaff0de))
* **reader-auth:** make password login the first option, instead of login link ([1fe5ffa](1fe5ffa)), closes [#1809](#1809)
* register anonymous single donors ([#1795](#1795)) ([9e4f2f6](9e4f2f6))
* **registration-block:** add success icon ([#1804](#1804)) ([86c38f8](86c38f8))
* **registration-block:** editable success state ([#1785](#1785)) ([7dcea82](7dcea82)), closes [#1768](#1768)
* **registration-block:** login with Google ([#1781](#1781)) ([ed79c5c](ed79c5c)), closes [#1774](#1774)
* **registration-block:** newsletter subscription ([#1778](#1778)) ([717b5b8](717b5b8))
* reorganise donations wizard and use buttongroup for donation type ([#1824](#1824)) ([f7b58ae](f7b58ae))
* replace WooCommerce’s login form with our own ([#1854](#1854)) ([f5b24c4](f5b24c4))
* **rss:** adds offset feature ([#1790](#1790)) ([321eff5](321eff5))
* send user metadata to AC ([#1793](#1793)) ([03a15ba](03a15ba))
* set client id cookie; reader activation tweaks ([#1780](#1780)) ([96a07ae](96a07ae))
* **stripe:** webhook auto-creation and validation ([365aed9](365aed9))
* tweak registration block styling ([d83448e](d83448e))

### Reverts

* Revert "chore(release): 1.87.0 [skip ci]" ([ca8d55c](ca8d55c))
@matticbot
Copy link
Contributor

🎉 This PR is included in version 1.88.0-alpha.1 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

dkoo pushed a commit that referenced this pull request Aug 10, 2022

Verified

This commit was signed with the committer’s verified signature.
miguelpeixe Miguel Peixe
Closes #1774 

Co-authored-by: Miguel Peixe <[email protected]>
matticbot pushed a commit that referenced this pull request Aug 10, 2022

Verified

This commit was signed with the committer’s verified signature.
miguelpeixe Miguel Peixe
# [1.89.0-alpha.1](v1.88.0...v1.89.0-alpha.1) (2022-08-10)

### Bug Fixes

* **active-campaign:** legacy contacts detection ([#1858](#1858)) ([67640a5](67640a5))
* **campaigns-wizard:** segmentation wording ([ddf61ad](ddf61ad))
* ensure scroll on smaller height ([#1813](#1813)) ([e234e8b](e234e8b))
* fix fatal error when debug mode active ([#1826](#1826)) ([d9388ee](d9388ee))
* **ga:** cookie parsing ([#1857](#1857)) ([a936abd](a936abd))
* google auth button type ([#1829](#1829)) ([3704d9f](3704d9f))
* **google-auth:** ensure popup on user click event ([#1831](#1831)) ([0af9abf](0af9abf))
* **magic-links:** fix email encoding on sent link ([#1833](#1833)) ([8d4756c](8d4756c))
* **my account:** handle legacy data ([#1823](#1823)) ([6816799](6816799))
* **newsletters:** use international date format ([#1855](#1855)) ([4cda57d](4cda57d))
* **popups:** use new Campaigns method for creating donation events on new orders ([#1794](#1794)) ([49dc14c](49dc14c))
* **reader-activation:** add metadata to reader registered on donation ([722724c](722724c))
* **reader-activation:** handle modal conflict when auth is triggered from a prompt ([c2a0141](c2a0141)), closes [#1835](#1835)
* **reader-activation:** handle no lists config available ([23b0249](23b0249))
* **reader-activation:** reinitialize auth links after DOM load ([#1812](#1812)) ([0a4b499](0a4b499))
* **reader-activation:** remove async prop from library ([#1846](#1846)) ([4131ca6](4131ca6))
* **reader-activation:** username generation handling ([#1789](#1789)) ([17edf2a](17edf2a))
* **registration-block:** don't escape html for sign in labels ([#1834](#1834)) ([871300d](871300d))
* **registration-block:** margin for success message ([#1808](#1808)) ([1bfe546](1bfe546))
* **registration-block:** render on preview ([#1844](#1844)) ([87b9be9](87b9be9))
* tweak arguments for magic link client hash ([#1862](#1862)) ([8dcd45e](8dcd45e))

### Features

* **active-campaign:** metadata improvements ([#1851](#1851)) ([48883af](48883af))
* **active-campaigns:** override is-new-contact for legacy contacts ([34dd9a2](34dd9a2))
* **analytics:** send GA events on the server side ([#1828](#1828)) ([3e384e1](3e384e1))
* **donations:** remove defaultFrequency from the configuration ([#1814](#1814)) ([b6aa894](b6aa894))
* handle contact update w/out lists selection ([#1816](#1816)) ([67574d1](67574d1))
* handle new frequency options in Campaigns dashbaord ([#1779](#1779)) ([c770a7d](c770a7d))
* if registering an email that already has an account, show different message ([#1849](#1849)) ([bf48bc4](bf48bc4))
* **my-account:** stripe billing portal link ([#1761](#1761)) ([3e69af1](3e69af1)), closes [#1742](#1742) [#1739](#1739) [#1740](#1740) [#1741](#1741) [#1782](#1782)
* **reader-activation:** account link and auth form ([#1754](#1754)) ([b163664](b163664))
* **reader-activation:** activecampaign master list ([#1818](#1818)) ([ecbbc47](ecbbc47))
* **reader-activation:** disable 3rd party login buttons initially ([#1806](#1806)) ([c806bfe](c806bfe))
* **reader-activation:** optimistic account link ([#1847](#1847)) ([85c550a](85c550a))
* **reader-activation:** prevent updating user email in my-account ([7d49db4](7d49db4))
* **reader-activation:** registration auth cookie control ([#1787](#1787)) ([aeb0b5b](aeb0b5b))
* **reader-activation:** settings wizard ([#1773](#1773)) ([aaff0de](aaff0de))
* **reader-auth:** make password login the first option, instead of login link ([1fe5ffa](1fe5ffa)), closes [#1809](#1809)
* register anonymous single donors ([#1795](#1795)) ([9e4f2f6](9e4f2f6))
* **registration-block:** add success icon ([#1804](#1804)) ([86c38f8](86c38f8))
* **registration-block:** editable success state ([#1785](#1785)) ([7dcea82](7dcea82)), closes [#1768](#1768)
* **registration-block:** login with Google ([#1781](#1781)) ([ed79c5c](ed79c5c)), closes [#1774](#1774)
* **registration-block:** newsletter subscription ([#1778](#1778)) ([717b5b8](717b5b8))
* reorganise donations wizard and use buttongroup for donation type ([#1824](#1824)) ([f7b58ae](f7b58ae))
* replace WooCommerce’s login form with our own ([#1854](#1854)) ([f5b24c4](f5b24c4))
* **rss:** adds offset feature ([#1790](#1790)) ([321eff5](321eff5))
* send user metadata to AC ([#1793](#1793)) ([03a15ba](03a15ba))
* set client id cookie; reader activation tweaks ([#1780](#1780)) ([96a07ae](96a07ae))
* **stripe:** webhook auto-creation and validation ([365aed9](365aed9))
* tweak registration block styling ([d83448e](d83448e))

### Reverts

* Revert "chore(release): 1.87.0 [skip ci]" ([ca8d55c](ca8d55c))
@matticbot
Copy link
Contributor

🎉 This PR is included in version 1.89.0-alpha.1 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

matticbot pushed a commit that referenced this pull request Aug 16, 2022

Verified

This commit was signed with the committer’s verified signature.
miguelpeixe Miguel Peixe
# [1.89.0](v1.88.0...v1.89.0) (2022-08-16)

### Bug Fixes

* **active-campaign:** legacy contacts detection ([#1858](#1858)) ([67640a5](67640a5))
* **campaigns-wizard:** segmentation wording ([ddf61ad](ddf61ad))
* ensure scroll on smaller height ([#1813](#1813)) ([e234e8b](e234e8b))
* fix fatal error when debug mode active ([#1826](#1826)) ([d9388ee](d9388ee))
* **ga:** cookie parsing ([#1857](#1857)) ([a936abd](a936abd))
* google auth button type ([#1829](#1829)) ([3704d9f](3704d9f))
* **google-auth:** catch and display errors ([#1871](#1871)) ([67cbcfd](67cbcfd))
* **google-auth:** ensure popup on user click event ([#1831](#1831)) ([0af9abf](0af9abf))
* **magic-links:** fix email encoding on sent link ([#1833](#1833)) ([8d4756c](8d4756c))
* **my account:** handle legacy data ([#1823](#1823)) ([6816799](6816799))
* **newsletters:** use international date format ([#1855](#1855)) ([4cda57d](4cda57d))
* **oauth:** csrf token lifespan ([#1869](#1869)) ([52e0f8b](52e0f8b))
* parse CID from _ga cookie if it only contains CID string ([#1874](#1874)) ([dc1fb52](dc1fb52))
* **popups:** use new Campaigns method for creating donation events on new orders ([#1794](#1794)) ([49dc14c](49dc14c))
* **reader-activation:** add metadata to reader registered on donation ([722724c](722724c))
* **reader-activation:** handle modal conflict when auth is triggered from a prompt ([c2a0141](c2a0141)), closes [#1835](#1835)
* **reader-activation:** handle no lists config available ([23b0249](23b0249))
* **reader-activation:** reinitialize auth links after DOM load ([#1812](#1812)) ([0a4b499](0a4b499))
* **reader-activation:** remove async prop from library ([#1846](#1846)) ([4131ca6](4131ca6))
* **reader-activation:** username generation handling ([#1789](#1789)) ([17edf2a](17edf2a))
* redirecting to My Account after logging in while pre-authed ([#1863](#1863)) ([ddf111e](ddf111e))
* **registration-block:** don't escape html for sign in labels ([#1834](#1834)) ([871300d](871300d))
* **registration-block:** margin for success message ([#1808](#1808)) ([1bfe546](1bfe546))
* **registration-block:** render on preview ([#1844](#1844)) ([87b9be9](87b9be9))
* tweak arguments for magic link client hash ([#1862](#1862)) ([8dcd45e](8dcd45e))
* verify reader on google authentication ([#1873](#1873)) ([c9c4eef](c9c4eef))

### Features

* **active-campaign:** metadata improvements ([#1851](#1851)) ([48883af](48883af))
* **active-campaigns:** override is-new-contact for legacy contacts ([34dd9a2](34dd9a2))
* **analytics:** send GA events on the server side ([#1828](#1828)) ([3e384e1](3e384e1))
* authenticated reader cookie ([#1882](#1882)) ([352316b](352316b))
* better welcome email copy for initial verification ([#1880](#1880)) ([604ebf7](604ebf7))
* cookie reader's preferred auth strategy ([#1875](#1875)) ([fc47f41](fc47f41))
* disable woocomerce welcome emails in favor of verification email ([#1876](#1876)) ([1e470e3](1e470e3))
* **donations:** remove defaultFrequency from the configuration ([#1814](#1814)) ([b6aa894](b6aa894))
* handle contact update w/out lists selection ([#1816](#1816)) ([67574d1](67574d1))
* handle new frequency options in Campaigns dashbaord ([#1779](#1779)) ([c770a7d](c770a7d))
* if registering an email that already has an account, show different message ([#1849](#1849)) ([bf48bc4](bf48bc4))
* lock access to My Account UI until account is verified ([#1877](#1877)) ([a850f48](a850f48))
* **my-account:** stripe billing portal link ([#1761](#1761)) ([3e69af1](3e69af1)), closes [#1742](#1742) [#1739](#1739) [#1740](#1740) [#1741](#1741) [#1782](#1782)
* **reader-activation:** account link and auth form ([#1754](#1754)) ([b163664](b163664))
* **reader-activation:** activecampaign master list ([#1818](#1818)) ([ecbbc47](ecbbc47))
* **reader-activation:** disable 3rd party login buttons initially ([#1806](#1806)) ([c806bfe](c806bfe))
* **reader-activation:** optimistic account link ([#1847](#1847)) ([85c550a](85c550a))
* **reader-activation:** prevent updating user email in my-account ([7d49db4](7d49db4))
* **reader-activation:** registration auth cookie control ([#1787](#1787)) ([aeb0b5b](aeb0b5b))
* **reader-activation:** settings wizard ([#1773](#1773)) ([aaff0de](aaff0de))
* **reader-auth:** make password login the first option, instead of login link ([1fe5ffa](1fe5ffa)), closes [#1809](#1809)
* register anonymous single donors ([#1795](#1795)) ([9e4f2f6](9e4f2f6))
* **registration-block:** add success icon ([#1804](#1804)) ([86c38f8](86c38f8))
* **registration-block:** editable success state ([#1785](#1785)) ([7dcea82](7dcea82)), closes [#1768](#1768)
* **registration-block:** login with Google ([#1781](#1781)) ([ed79c5c](ed79c5c)), closes [#1774](#1774)
* **registration-block:** newsletter subscription ([#1778](#1778)) ([717b5b8](717b5b8))
* reorganise donations wizard and use buttongroup for donation type ([#1824](#1824)) ([f7b58ae](f7b58ae))
* replace WooCommerce’s login form with our own ([#1854](#1854)) ([f5b24c4](f5b24c4))
* **rss:** adds offset feature ([#1790](#1790)) ([321eff5](321eff5))
* send user metadata to AC ([#1793](#1793)) ([03a15ba](03a15ba))
* set client id cookie; reader activation tweaks ([#1780](#1780)) ([96a07ae](96a07ae))
* **stripe:** webhook auto-creation and validation ([365aed9](365aed9))
* tweak registration block styling ([d83448e](d83448e))

### Reverts

* Revert "chore(release): 1.87.0 [skip ci]" ([ca8d55c](ca8d55c))
@matticbot
Copy link
Contributor

🎉 This PR is included in version 1.89.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
released on @alpha released [Status] Approved The pull request has been reviewed and is ready to merge Work In Progress
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Authentication: Google sign-in
5 participants