Commit Graph

11475 Commits

Author SHA1 Message Date
Kevin Ansfield
8ceabbcfba Added automatic labelling of all members added during an import
no issue

Having all members created during an import labelled with a specific "import label" is useful for later operations such as bulk delete/edit or simply recording how and when a member was created.

- automatically create a label with the date/time the members CSV import occurred and assign it to all imported members
- return the import label data in the API response so that clients can react accordingly such as automatically filtering the members list by the label once an import finishes
2020-07-22 17:52:43 +01:00
Daniel Lockyer
0fd6684d02 v3.26.1 2020-07-22 11:56:55 +01:00
Daniel Lockyer
5e45cd9155 Updated Ghost-Admin to v3.26.1 2020-07-22 11:56:55 +01:00
Rish
c6cbf9312c Bumped @tryghost/members-api to 0.24.5
refs https://github.com/TryGhost/Team/issues/342

This includes change for updating status code for `sendMagicLink` middleware failure from the actual error object
2020-07-22 16:20:24 +05:30
Fabien O'Carroll
daf38fa24f Bumped @tryghost/members-api to 0.24.4
refs #12074

This includes code to cleanup of any previous webhooks, to ensure that
we have no duplicates.
2020-07-22 12:31:09 +02:00
Fabien 'egg' O'Carroll
69080824de
🐛 Ensured webhooks are created once (#12075)
refs #12074

Since we've split members settings into multiple keys the
reconfiguration of the members-api has been happening in quick
succession as the stripe_connect_* settings are all set at once.

This debounces the call to reconfigure the members-api so that we only
need to instantiate it once.
2020-07-22 12:27:05 +02:00
Daniel Lockyer
415696a3f9 Replaced removed nock method
no issue
2020-07-21 20:25:06 +01:00
Renovate Bot
12b2582088 Update Test & linting packages 2020-07-21 20:25:06 +01:00
Renovate Bot
26d2fb662e Update dependency juice to v7 2020-07-21 20:10:20 +01:00
Renovate Bot
d949057a8b Update dependency uuid to v8.2.0 2020-07-21 19:10:09 +01:00
Daniel Lockyer
82dcc042cd Added coffeescript to dev dependencies
refs https://github.com/gruntjs/grunt/pull/1675

- Grunt 1.2.0 removed coffeescript as a dependency, opting to leave it
  to the users to install
- we use `grunt-bg-shell`, which is built in coffeescript and therefore
  needs the dependency else `grunt dev` doesn't work
- I don't like needing to add coffeescript but it'll do until we give
  the dev experience a good cleanup
2020-07-21 19:09:31 +01:00
Renovate Bot
91013bfcd6 Update dependency grunt-contrib-uglify to v5 2020-07-21 18:59:37 +01:00
Renovate Bot
58fcf70f23 Update dependency sanitize-html to v1.27.1 2020-07-21 17:54:29 +00:00
Renovate Bot
80603e218c Update dependency netjet to v1.4.0 2020-07-21 17:36:24 +00:00
Renovate Bot
9587af5dd0 Update dependency grunt to v1.2.1 2020-07-21 17:04:24 +00:00
Renovate Bot
d0b9d6be0c Update dependency @sentry/node to v5.20.0 2020-07-21 16:31:12 +00:00
Daniel Lockyer
4c9e9313d8 Updated Renovate config
no issue
2020-07-21 16:51:59 +01:00
Daniel Lockyer
55948ef4a6 v3.26.0 2020-07-21 13:45:57 +01:00
Daniel Lockyer
38f3e3ff03 Updated Ghost-Admin to v3.26.0 2020-07-21 13:45:56 +01:00
Daniel Lockyer
79c04459c2 Updated Casper to v3.0.13 2020-07-21 13:45:56 +01:00
Fabien O'Carroll
73badf150f 🐛 Fixed race condition when configuring Stripe
closes #12065

Includes the code from https://github.com/TryGhost/Members/pull/185
2020-07-21 14:22:06 +02:00
Fabien O'Carroll
0fe80edc0a 🐛 Fixed Stripe Subscriptions with trail periods
no-issue

This fixes a problem when subscribing to a Plan (Price) with a default
trial period. We also add logging to add a little more information about
which flow we're entering.

Subscriptions that are started with a trial have a
present on the Checkout Session object, which was incorrectly causing us
to determine that we are in a setup flow and attempt to update a
customers card details.

We now use the  property of the Checkout Session to determine
whether we are handling a new Subscription, or if we are in a setup
flow and should update the Customer's card details.

Includes the code from https://github.com/TryGhost/Members/pull/184
2020-07-21 14:22:06 +02:00
Fabien O'Carroll
1822e5d23e 🐛 Fixed webhook cleanup to handle older URLs
closes #12061

Includes the code from https://github.com/TryGhost/Members/pull/181
2020-07-21 14:22:06 +02:00
Renovate Bot
09ff9cd331
Update dependency @tryghost/members-ssr to v0.8.3 2020-07-21 11:48:24 +00:00
Hannah Wolfe
995a4eb46e 🐛 Fixed edit link for staff members
closes #12069

- the url in admin changed from team to staff, and wasn't updated in the frontend
2020-07-21 12:28:50 +01:00
Renovate Bot
3f08443e26
Update dependency @tryghost/magic-link to v0.4.11 2020-07-21 10:05:00 +00:00
Rish
3d164d222b Updated error name check in GhostMailer
no issue
refs e8511d0568

- Adds extra check for empty `err` object while checking error name for status code in GhostMailer
2020-07-21 01:08:19 +05:30
Rish
e8511d0568 Updated error code for incorrect recipients in GhostMailer
no issue

- By default, GhostMailer throws EmailError with statusCode as `500` for any failure in sending mail
- In case of failure due to `RecipientError`, status code as now correctly sent as `400` as its a bad request and not an error we can't handle.
2020-07-21 01:05:21 +05:30
Fabien 'egg' O'Carroll
6232981be7
🐛 Fixed importing Stripe Plans with amount 0 (#12062)
closes #12049

Stripe plans used to default to 0, and our new validation of plan
amounts were causing issues when importing from an older version of
Ghost, this updates the validation to be skipped when importing.

- Added regression test for importing plans
2020-07-20 14:59:23 +02:00
Renovate Bot
b3aec95230
Update dependency express-hbs to v2.3.4 2020-07-20 10:57:49 +00:00
Daniel Lockyer
d261f88456 Fixed typos in webhook error message
no issue
2020-07-20 09:05:56 +01:00
Renovate Bot
32a043c27c
Update dependency eslint to v7.5.0 2020-07-20 05:35:46 +00:00
Rish
90b39fbb9a Updated status and error message for newsletter email failures
refs https://github.com/TryGhost/Ghost/issues/11971

- Added statusCode from bulk email provider to API response
- Updated error messages for different bulk email(mailgun) failure states
- Added `context` to preview mail API error message with mail provider's error message
2020-07-17 13:54:09 +05:30
Nazar Gargol
a520cdad0b Added JSON Schema validations to Webhooks Admin API v3
closes #12033

- Added webhooks schemas and definitions.
- Added validation checking if integration_id is present when using session auth. This is needed to prevent orphan webhooks.
- Integrated webhook schemas into frame's validation layer.
- Added isLowerCase ajv keyword support. This is needed to be able to do isLowerCase validation using JSON Schema for webhooks.
2020-07-17 17:37:14 +12:00
Fabien 'egg' O'Carroll
8f660c3259
Improved settings validation (#12048)
closes #12001

* Moved settings validation to the model

This moves the settings validation out of the validation file and into
the model, as it is _only_ used there.

It also sets us up in the future for custom validators on individual
settings.

* Improved validation of stripe_plans setting

- Checks `interval` is a valid string
- Checks `name` & `currency` are strings

* Moved stripe key validation into model

The stripe key settings are all nullable and the regex validation fails
when the input is `null`. Rather than reworking the entirety of how we
validate with default-settings validation objects, this moves the
validation into methods on the Settings model.

* Added tests for new setting validations

Adds tests for both valid and invalid settings, as well as helpers
making future tests easier and less repetitive
2020-07-15 17:11:27 +02:00
Fabien O'Carroll
8cedbdf07c Fixed version for amp_gtag_id setting migration
refs #11980

This was added to the 3.25 directory _after_ 3.25.0 was released, thanks
to @daniellockyer for the catch!
2020-07-15 15:33:37 +02:00
Fabien O'Carroll
23bf432514 Updated AMP output to include Google Analytics
refs #11980

This adds a new handlebars helper {{amp_analytics}} which outputs the
GA configuration script if the amp_gtag_id setting is present.

We also update {{amp_components}} to output the GA script in the head if
the setting is present
2020-07-15 13:43:25 +02:00
Fabien O'Carroll
48eca5f618 Added amp_gtag_id setting migration & default
refs #11980

This lays the ground for the rest of the work surrounding Google
Analytics in AMP.
2020-07-15 13:43:25 +02:00
Nazar Gargol
ced3e28d60 🐛 Fixed cache invalidation for published posts with no content
closes #12015
refs 95880dddeb

- The bug was caused by falsy plaintext field assignment to empty string `''` when the html content was `null`. Because of the `setEmptyValuesToNull` function (referenced commit), there is no sense to assign empty string value to plaintext property, because it would still end up being `null`
- The `''` -> `null` conversion was confusing the model layer to think that some fields were changed, where in reality none did. This in turn lead to a bug with falsy cache invalidation
2020-07-15 17:41:24 +12:00
Nazar Gargol
a75e1e27db 🐛 Fixed cache invalidation when editing post_meta fields
closes #12016

- The change detection didn't work when editing post_meta fileds because we only check current model's `_changed` fields when performing `wasChanged()` check
- A solution was adding change tracking of post_meta relation to currently edited post model and overloading `wasChanged` method to check these fields as well
2020-07-14 23:48:36 +12:00
Renovate Bot
33813962d3
Update dependency @sentry/node to v5.19.2 2020-07-14 08:04:55 +00:00
Daniel Lockyer
ae68d090ca v3.25.0 2020-07-13 14:52:36 +01:00
Daniel Lockyer
8c45eca2c9 Updated Ghost-Admin to v3.25.0 2020-07-13 14:52:36 +01:00
Rishabh Garg
ead073ad68
Updated sender email to existing "from-address" (#12044)
refs #12043

- On updating From-address from Members settings in Labs, we send a confirmation email to the updated address with magic link for verification
- Previously, no explicit sender email was being set for this so fallback config address was used
- This updates the sender address to use the current from address for "from-address" update emails
2020-07-13 17:57:31 +05:30
Fabien O'Carroll
06c7152f4b 🐛 Fixed Stripe webhooks for subdirectory setups
no-issue

- Added breaking test for webhook url including subdirectory

- Previously the webhook handler URL was generated incorrectly when
  running Ghost on a subdirectory, appending the path to the root of the
  host, this fix ensures that the subdirectory is included before the
  path.
2020-07-10 17:43:46 +02:00
Fabien O'Carroll
832ecad43b Improved handling of Stripe webhooks on boot
no-issue

This version of members-api includes changes to how webhooks are
managed, previously they would be deleted and recreated on every boot of
Ghost. Now they are created and the secret is persisted, on boot the
webhook is updated to the most current url and events. If the api
version is wrong or the update fails, the webhook is deleted and
recreated and the settings updated.

 - Installed @tryghost/members-api@0.24.0
 - Updated config to work with 0.24.0
2020-07-10 17:43:46 +02:00
Fabien 'egg' O'Carroll
20a95de8f7
Added new stripe webhook settings (#12028)
no-issue

They will be used to store webhook information so that we can persist it between
boots and simplify the creation process of webhooks in members
2020-07-10 16:26:06 +02:00
Daniel Lockyer
59ef5c0ef5 v3.24.0 2020-07-10 14:26:50 +01:00
Daniel Lockyer
63ccbb817d Updated Ghost-Admin to v3.24.0 2020-07-10 14:26:50 +01:00
Rish
d6f4f01eff Added new settings integrity tests
refs https://github.com/TryGhost/Ghost/issues/12026

- We made changes to settings table structure in 3.22 which added new columns for `group` and `flags`
- Any new setting needs explicit group and flag migrations since or they fallback to default group value of `core`
- This tests ensures
  - hash is updated in DB integrity test anytime default-settings are changed
  - that a migration is present by maintaining a whitelist of allowed core settings and failing if new setting is added without correct group migration
2020-07-10 18:32:54 +05:30