Commit Graph

16617 Commits

Author SHA1 Message Date
Simon Backx
3b9f9524f1 Updated comments helper tests
refs 0c5c1abb1a

- Fixes broken test
- Added some extra tests for the new behaviour
2022-07-20 10:37:06 +02:00
Simon Backx
0c5c1abb1a Added data-comments-enabled attribute to comments helper
refs https://github.com/TryGhost/Team/issues/1693

- The comments section needs to know the access settings for comments
- Updated the comments helper to also double check access settings (comments enabled + member has access to the post)
2022-07-20 10:21:19 +02:00
renovate[bot]
b671504a2c
Update Test & linting packages 2022-07-19 19:25:37 +00:00
Daniel Lockyer
8be9db7bcf
Merged v5.4.1 into main
v5.4.1
2022-07-19 16:01:04 +02:00
Daniel Lockyer
e39937ae21 v5.4.1 2022-07-19 14:57:42 +01:00
Daniel Lockyer
445d5b4da2
🐛 Fixed new member count helpers not included in GScan helpers
- this was due to GScan not being published and bumped before the member
  count helpers were merged into Ghost and released
2022-07-19 15:41:02 +02:00
Kevin Ansfield
682e051840
Added editor.url config (#15045)
no issue

- used for an ongoing react based editor experiment
- by exposing `editor.url` in public config it lets Admin dynamically fetch the external module and allows for independent releases of the editor without needing to have a full Ghost release
- follows the same pattern as portal and comments
2022-07-19 14:23:29 +01:00
Simon Backx
309ead6108
🐛 Fixed sending multiple support email verification emails (#15044)
refs https://github.com/TryGhost/Team/issues/1686

- When the settings are updated with the `members_support_address` key present, it would always send a verification email
- Root cause is that the service failed to check if the email was changed or not. Due to a bug it always thought the email was changed, triggering the verification flow.
- The admin app will always send all the settings keys when changing some other value. This causes a lot of email verification emails.
- Added tests and email count checks in tests
2022-07-19 15:21:53 +02:00
Daniel Lockyer
1ba2988e98
Added v5.* to workflow triggers
- this is needed so we run CI tests on release branches
2022-07-19 15:21:42 +02:00
Simon Backx
2e1a756213
🐛 Fixed sending multiple support email verification emails (#15044)
refs https://github.com/TryGhost/Team/issues/1686

- When the settings are updated with the `members_support_address` key present, it would always send a verification email
- Root cause is that the service failed to check if the email was changed or not. Due to a bug it always thought the email was changed, triggering the verification flow.
- The admin app will always send all the settings keys when changing some other value. This causes a lot of email verification emails.
- Added tests and email count checks in tests
2022-07-19 15:13:29 +02:00
Daniel Lockyer
d1f2040d8a
Added content/settings to .npmignore
- this folder should be clean of non-README files in the published package
  so we need to add it to `.npmignore` to ignore any other files
2022-07-19 11:05:29 +02:00
Daniel Lockyer
578b405afc
Deleted deprecated Grunt commands
- these have been deprecated and undocumented for a long time so we can
  now clear them up as `yarn main` and `yarn test ...` are the official
  ways to do the same thing
2022-07-19 08:38:02 +02:00
Daniel Lockyer
48194ff444
Refactored release workflow
- up until now, we've been running `grunt release` before publishing to
  NPM or pushing the canary zip
- this command runs the production asset build and generates a zip
- this zip isn't used by the NPM publishing task because that does an
  `npm pack`
- we only use it for the canary build, but this should be brought more
  inline with the NPM process to make the gaps smaller
- this commit refactors the `grunt release` task to become a lot smaller
  by removing the generated zip steps
- the expected workflow is now to just to an `npm pack`, which will run
  the `prepack` task to generate a `.tgz` archive
- this should still respect `.npmignore`, so it'll just include the
  files we expect
- the test of the canary workflow is being updated to handle this
- also cleans up a dev dependency that is no longer used, along with 2
  imports
2022-07-19 08:32:54 +02:00
renovate[bot]
94072c4a32
Update dependency knex to v2.2.0 2022-07-18 22:37:53 +00:00
Naz
f240aa60ff Added test to versioned Content API response
no issue

- The test adds clarity to how Content API handles 404 error where the resource was not found. The need came from a suspicion we do not handle this scenario well on production.
2022-07-18 13:45:00 +01:00
renovate[bot]
fb074f6fba
Update dependency eslint to v8.20.0 2022-07-18 00:52:24 +00:00
renovate[bot]
45594680c0
Update dependency @sentry/node to v7.7.0 2022-07-15 15:01:46 +00:00
Daniel Lockyer
2ff53ef0da v5.4.0 2022-07-15 16:00:33 +01:00
Daniel Lockyer
1137e3093e Updated Admin to v5.4.0 2022-07-15 16:00:33 +01:00
Daniel Lockyer
9524f9de88 🎨 Updated Casper to v5.2.1 2022-07-15 16:00:32 +01:00
Daniel Lockyer
388c28f4b5
Updated dependency knex-migrator to v5.0.1
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-07-15 15:35:51 +01:00
Fabien 'egg' O'Carroll
feaf5d0c91
🐛 Fixed tag url field when explicitly querying fields
refs https://github.com/TryGhost/Ghost/issues/14983

The url field of tags is read dynamically from the url service, rather than
from the database. The lookup requires the id of the tag, which was missing
from the model when asking for explicit fields which didn't include id. By
adding the id as a default column to fetch, we know for sure that we will always
have the necessary data to read the url.
2022-07-15 15:11:24 +01:00
Simon Backx
c6621dc17d
🐛 Updated support email verification flow (#15029)
refs https://github.com/TryGhost/Team/issues/584

The current support email verification flow uses an API endpoint as verification URL inside the emails. This is a bad pattern, and also has the side effect that it shows a JSON error if something goes wrong.

To fix this, this commit updates the whole flow to use the same pattern as newsletters:
- You can update the `members_support_address` setting directly via the edit endpoint of settings.
- Changes to that (and future 'guarded' email properties) are blocked and generate verification emails automatically.
- When an email verification has been sent, the meta property `sent_email_verification` is set.

Other changes:
- Underlying, the implementation of email verificaton has moved from the (old) members service to the settings BREAD service. This makes it easier to add extra email addresses in settings later on that are not related to 'members'.
- Now you can update the `members_support_address` by updating the settings directly, so the `updateMembersEmail` endpoint has been deprecated and is mapped to the new behaviour.
- The SingleUseTokenProvider threw a `UnauthorizedError` error if a token was expired or invalid. Those errors are caught by the admin app, and causes it to do a page reload (making the error message and modals invisible). To fix that, I've swapped it with a validation error.

Future changes:
- Existing emails that have been sent 24h before this change is applied, still use the `validateMembersEmailUpdate` API endpoint. This endpoint has not been removed for now, to not break those emails. In a future release, we should remove this.

Changes to admin: https://github.com/TryGhost/Admin/pull/2426
2022-07-15 14:43:52 +02:00
renovate[bot]
7b6bf4cf67 Update dependency sqlite3 to v5.0.9 2022-07-15 12:18:48 +01:00
Fabien 'egg' O'Carroll
e60806de45
Redirected Members to previous post/page upon sign-in
refs https://github.com/TryGhost/Team/issues/1174
refs https://github.com/TryGhost/Members/pull/408

When logged out members navigate a site and want to interact with, for example
comments, they are redirected to the homepage after sign-in with the magic link,
this is disorientating, and means they then need to navigate back to the content
they were interacting with.

This change means that sign-in's will be redirected to the page from which they 
were initiated, allowing a more streamlined flow for logged out members wanting
to add comments.

We've restricted the redirect to URI's which are on the same domain as the site,
and we also do a relative redirect, this is to ensure that a malicious actor does not
send magic links which redirect off-site and leak authentication details
2022-07-15 11:55:09 +01:00
naz
6901c3c435
🐛 Fixed 'comped' flag behavior in Member API (#15030)
closes https://github.com/TryGhost/Team/issues/1674

- The comped flag in Members API unintentionally stopped working when v3 API was dropped with the release of Ghost v5. The flag is deprecated but should be back-compatible for now - we don't want to break integratons like Zapier.
- To properly deprecate the flag we need to plan it's removal and start signalling about it through the version headers

Co-authored-by: Simon Backx <simon@ghost.org>
2022-07-15 11:16:06 +01:00
Rishabh Garg
e91beb72e8
Replaced offer serializer with mapper (#15028)
closes https://github.com/TryGhost/Team/issues/1623

The offers API endpoint had it's own custom serializer pattern, which didn't fit well with how the API is meant to work.

- refactored the offer data format returned by internal api controller to match other controllers
- removed custom serializer for offers, instead adds a mapper to follow consistent pattern for all apis
- adds explicit allowlist for offers content API data
2022-07-14 21:40:33 +05:30
Ronald Langeveld
a0c8db46fb
Member Counter template helpers (#15013)
ref https://github.com/TryGhost/Team/issues/1667

Introducing 2 new helper handlebars tags, `{{total_members}}` and `{{total_paid_members}}` ideal for Member Sites who want to display these metrics to incentivise users to upgrade.
2022-07-14 10:10:02 +02:00
renovate[bot]
b6818b77bd Update dependency @playwright/test to v1.23.3 2022-07-14 08:42:49 +01:00
Simon Backx
d65aa08772
Added access-control-max-age to content API preflight requests (#15026)
refs https://github.com/TryGhost/Team/issues/1676

- Added maxAge option to content API
- Added maxAge to members API
- Added maxAge to frontend site preflights (probably not used, but it was configured, so added to be sure)
- Added config option to change default maxAge of preflight requests
2022-07-14 09:09:53 +02:00
renovate[bot]
000fc98f24
Update dependency analytics-node to v6.1.0 2022-07-13 20:00:15 +00:00
Daniel Lockyer
de23ddb626
Merged v5.3.1 into main
v5.3.1
2022-07-13 12:57:10 +01:00
Daniel Lockyer
efe4bd8a1d v5.3.1 2022-07-13 12:55:34 +01:00
Daniel Lockyer
5efa9c01ac Updated Admin to v5.3.1 2022-07-13 12:55:34 +01:00
Simon Backx
90461c42d2
Added subscriber signup and cancellation deltas to stats API (#15023)
refs https://github.com/TryGhost/Team/issues/1673

When a user switches plan, the paid subscribers delta chart on the dashboard displays the change as a cancellation plus a new subscription. This display is misleading and confusing - instead, plan changes should be excluded from the paid subscribers delta chart.

To accomplish this, we added new properties to the API (signups and cancellations) that can be used to exclude plan changes in the statistics.

Changes in `@tryghost/stats-service`: d0dd218fc7

Related admin changes: https://github.com/TryGhost/Admin/pull/2425
2022-07-13 13:45:24 +02:00
Naz
02541031ec Updated webhook snapshots
refs TryGhost/Toolbox#340
refs TryGhost#13451

- Fixed the snapshot files which had to include new fields like "comment_notifications" as well as other properties that came along with the hacky solution to the webhook's auhor inclusion bug
- Also documented the "roles" being included inconsistently across different events - it's a BUG and should be looked into one day when we care enough.
2022-07-13 23:05:27 +12:00
Naz
ba061d86e8 🐛 Fixed missing authors in webhook payload
closes https://github.com/TryGhost/Toolbox/issues/340
closes https://github.com/TryGhost/Ghost/issues/13451

- Webhook subscribers were receiving post request payloads without `authors` and `primary_author` properties.
- The behavior was due to missing "originalOptions" property that is needed to correctly serialize the model to json on the model layer.
- A more holistic approach would be to pass the options somehow along with the model with the event. This would require a deeper rework though
2022-07-13 23:05:27 +12:00
Fabien 'egg' O'Carroll
86905aaad8
🐛 Fixed cookies when running Ghost without SSL (#15022)
As part of the updates to auth cookies we switched to SameSite=None
which requires an SSL connection. Local development, and some
production sites do not use SSL and so the cookie is invalid and a
session is unable to be created with the browser.
2022-07-13 11:27:28 +01:00
Fabien 'egg' O'Carroll
7d85a434b2
🐛 Fixed cookies when running Ghost without SSL (#15022)
As part of the updates to auth cookies we switched to SameSite=None
which requires an SSL connection. Local development, and some
production sites do not use SSL and so the cookie is invalid and a
session is unable to be created with the browser.
2022-07-13 10:49:06 +01:00
renovate[bot]
a23cf94b60
Update dependency image-size to v1.0.2 2022-07-12 15:25:08 +00:00
Daniel Lockyer
815fdc9235 v5.3.0 2022-07-12 16:24:02 +01:00
Daniel Lockyer
9284469fb5 Updated Admin to v5.3.0 2022-07-12 16:24:01 +01:00
Daniel Lockyer
8d0c88e9ef 🎨 Updated Casper to v5.2.0 2022-07-12 16:24:01 +01:00
Naz
0bc66558c3 Added unit test coverage to the user service
refs https://github.com/TryGhost/Ghost/issues/15008

- Added basic coverage for the reset all passwords frlow to pass the test coverage bar
2022-07-13 03:06:04 +12:00
Naz
db125ec0b9 Added post tag assignment on user deletion
closes https://github.com/TryGhost/Ghost/issues/15008

- To improve searchability of the posts written by a removed user we are adding an internal tag to all the posts the user was an author or a co-author of
- This improvement should make managing and disovering deleted user's post way easier
2022-07-13 03:06:04 +12:00
Naz
2956c1e88a Migrated test to more readable syntax
no issue

- A bit of a cleanup before touching this test suite. The use of `done` in tests is soooo outdated
2022-07-13 03:06:04 +12:00
Simon Backx
63f2cfdd32 Fixed comments fixtures being created in parallel
refs https://ghost.slack.com/archives/C02G9E68C/p1657633760754589?thread_ts=1657624324.578099&cid=C02G9E68C

- The two comment fixtures are created in parallel
- Second one is created while the first one doesn't exist yet, which causes a FK constraint error
2022-07-12 15:59:55 +02:00
Daniel Lockyer
e7ccdedb8d
Updated .npmignore
- added `Gruntfile.js` - this file is only for development
- added `ghost-*.tgz` - this avoid packaging other packaged Ghost
  archives
- added `!core/frontend/src/admin-auth/*.html` - this re-adds the Admin Auth
  HTML file that would otherwise be excluded from the build
2022-07-12 14:09:01 +01:00
Rishabh Garg
b9285b456b
Bumped new built-in search to GA (#15017)
refs https://github.com/TryGhost/Team/issues/1665

- bumps new search feature to GA from alpha
- allows sites to trigger new built-in search feature via `data-ghost-search` attribute or navigation link( `#/search` )
2022-07-12 17:57:11 +05:30
Fabien 'egg' O'Carroll
34ddbcd52e
Fixed admin auth asset loading (#15018)
The copyStatic method relies on the dest directory existing, which is
done created the minify method. We've reordered the calls to fix the
issue, but we're still left with the copyStatic method being dependent
on the minify method. Adding the `@private` jsdoc tag removes these
from the public interface, so that the dependency is encapsulated in
this module via the `load` method.

We've also awaited the result of the copyStatic method to avoid
dangling promises.
2022-07-12 13:25:28 +01:00