Commit Graph

10140 Commits

Author SHA1 Message Date
Hannah Wolfe
0ab2f36c22
Added settingsCache handling to e2e-framework
refs: https://github.com/Ghost/Ghost/commit/b5ee17b25

- When moving the site tests into e2e-api they broke because they were getting the changed settings value from the settings test
- The solution is to ensure the settingsCache is reset between tests, which is what this commit does
- This commit also renames the shutdown method to reset, because this is not a permanent operation
- It also renames the resetDb method to resetData, because the concept is we want the internal data to be reset, not just the DB
2022-02-11 16:24:24 +00:00
Daniel Lockyer
4026150062 Updated Admin to v4.36.0 2022-02-11 16:00:27 +00:00
Hannah Wolfe
9375a1701a
Revert "Fixed theme storage getting confused between tests"
This reverts commit 3e7039c47d.
2022-02-11 11:09:21 +00:00
Fabien "egg" O'Carroll
46db240bf9 🐛 Fixed welcome pages for paid signups
no-issue

The way we choose which email to send is too tightly coupled with the
magic link generation, which meant that when we added the new paid
signup email, the magic link looked like <url>?action=signup-paid rather
than <url>?action=signup - our welcome page logic was working off of
only using welcome pages for action=signup and so this broke.
2022-02-11 13:08:07 +02:00
Fabien "egg" O'Carroll
3a0fa8d7d8 🐛 Fixed welcome pages when Tiers is enabled
no-issue

The welcome pages feature was moved behind a separate flag and this part
of the code was not updated.
2022-02-11 13:08:07 +02:00
Hannah Wolfe
3e7039c47d
Fixed theme storage getting confused between tests
- When starting ghost for e2e tests we create a content folder in the os tmp dir
- This means that the folder can change between suites as ghost is started and restarted
- For the most part this is fine, but theme storage caches the path to config (which makes sense, it's not meant to change whilst Ghost is in-memory)
- This is a quick-n-dirty fix that just makes it possible to update that path in the tests, so we know it's in sync
- Ideally we'd not cache the path, use a function to fetch it etc, or fully reset the theme storage layer, but this is the fix I have working today
     and so it's going in to unblock things for now
2022-02-11 10:37:37 +00:00
Rishabh
3ccd3601b3 🐛 Fixed post content gating error for themes using old api
refs https://github.com/TryGhost/Team/issues/1071

We switched to using tiers pivot table that stores list of tiers with access to post when visibility is set to `tiers`. For themes using v3 API while having posts restricted to specific tiers visibility, the post data will not include the list of tiers, which caused an unexpected error while trying to determine post access from tiers list. This change blocks access to post if specific tiers visibility is enabled without data available for list of tiers on post.
2022-02-11 12:26:19 +05:30
Thibaut Patel
a1edff4b0c Fixed linting issue
refs 26c6238c3b
2022-02-10 12:25:57 +01:00
Thibaut Patel
26c6238c3b Released to GA the theme parameter in the /authentication/setup route
refs daeb06e835

- This is an additive change, and the parameter is optional so it's better to ship it right away (testing was hard as it's a chicken and an egg problem to have a feature flag in the setup route).
2022-02-10 12:21:28 +01:00
Djordje Vlaisavljevic
c308d00235 Added tierName feature flag
refs https://github.com/TryGhost/Team/issues/1069
2022-02-10 11:40:28 +01:00
Thibaut Patel
479df36a48 Added the last_seen_at column to members
refs https://github.com/TryGhost/Team/issues/1304

- This migration adds a column to store when a members was last seen
- The utils.js e2e test file was refactored according to the commit 06dd9bac59
2022-02-09 11:57:45 +01:00
Kevin Ansfield
59c0d4b4e4 Added Sentry error capture for failed email update after sending is complete
refs https://github.com/TryGhost/Team/issues/1321

- when updating the Email record after submitting all email batches we have a `catch` call but it was only logging the error
- added a call to Sentry so there's more visibility if those saves fail
2022-02-08 18:36:14 +00:00
Daniel Lockyer
94f5add1c0 Refactored default settings population to reduce unnecessary DB queries
refs https://github.com/TryGhost/Toolbox/issues/202

- this code suffers from two problems:
  - when we don't have any new settings to insert, we still end up
    fetching the columnInfo and owner info, even though we only need
    them if we're inserting data. This results in 3 extra queries upon
    boot
  - secondly, we insert every setting with a separate query - MySQL and
    SQLite both support batch inserts and knex has a utility to help us
    that I've [used
    before](38821c5242).
    With 95 settings at the time of writing, this adds 94 extra queries
    during the DB init
- this commit refactors the code so that we only fetch the columnInfo and
  owner data if we've got new settings to insert, and batches the
  inserts using knex's batchInsert util
- this query results in ~95 less queries during DB init and saves a
  couple of queries during boot
2022-02-08 10:11:00 +01:00
Torsten Zander
f1b71f7fd7
🐛 Fixed AssetHelper not working with svg (#13978)
loses TryGhost#13971

This fixes an issue with links containing # anchor. It makes sure the # part is at the end of the url like url?v=hash#anhor

Co-authored-by: Hannah Wolfe <github.erisds@gmail.com>
2022-02-07 15:07:18 +00:00
Daniel Lockyer
af240816d8 Added eslint exemption for camelcase line
no issue

- the new eslint bump seems to flag this line up for using camelcase
- i'm not sure why this hasn't flagged before but it seems we want to
  keep the naming because the function name has the same linting exemption
2022-02-07 13:16:05 +01:00
Thibaut Patel
daeb06e835 Added a theme parameter to the /authentication/setup route
refs https://github.com/TryGhost/Team/issues/1296

- The `theme` must be a github `org/repo` string
- This uses the internal API instead of the services because the API has extra implementation details not present in the services.
2022-02-07 12:03:40 +01:00
Daniel Lockyer
54829a4bb8 Updated Admin to v4.35.0 2022-02-04 16:00:26 +00:00
Rishabh Garg
f3119cbf77
Handled default value in post for specific tier content visibility (#14121)
refs https://github.com/TryGhost/Team/issues/1071

Default visibility for a post when set to specific tiers needs special handling as data for specific tiers is stored as an array of tiers on a pivot table. This change handles the default visibility for a new post when set to specific tiers to generate the right default values in model.
2022-02-04 21:00:08 +05:30
Rishabh Garg
744e5e57a0
Fixed missing portal product data (#14115)
closes  https://github.com/TryGhost/Team/issues/1311

For some sites, the `portal_products` array was created without any value and due to a possible bug in older version of Ghost, it also didn't get filled on Stripe connect with default product. This causes a side-effect of sites not showing the prices in Portal when tiers beta is enabled or is out as GA. This change populates the missing product data in `portal_product` for sites that have a single tier (haven't enabled tiers beta), as they right now don't have an option to hide the tier.
2022-02-04 19:57:38 +05:30
Rishabh
c99ee980af Added migration to transform default tiers visibility from nql string
refs https://github.com/TryGhost/Team/issues/1071

Default content visiblity for specific tiers is now stored split between `default_content_visiblity` and `default_content_visibility_tiers` setting, with former storing the value as `tiers` and the latter stores the list of tiers that the visibility is restricted to. This migration transforms all existing sites that have default visibility stored as an NQL string from previous versions to follow the new model and store correctly on the new setting.
2022-02-04 19:56:11 +05:30
Rishabh
6f89ccf901 Added default_content_visibility_tiers setting for default tiers visibility
refs https://github.com/TryGhost/Team/issues/1071

Default content visibility for a post can be one of `public|members|paid|tiers`, where `tiers` denotes visibility restricted to specific tiers. This change adds a new setting to store the tier ids when default content visibility is set to `tiers`. This closely matches how the visibility is stored on `posts` table as well, with `visibility` stored as `tiers` and tiers data is stored on tiers pivot table.
2022-02-04 19:56:11 +05:30
Fabien 'egg' O'Carroll
d60d24e744
Migrated email filter columns from VARCHAR to TEXT (#14091)
refs https://github.com/TryGhost/Team/issues/1287

Currently we have a hard limit of how large an email filter can be,
which is very restrictive once a site starts using Tiers - by moving
toward a TEXT column, we essentially give the filters unlimited size.

This currently doesn't handle SQLite as there are no limits on VARCHARS
in SQLite.

The down migration is a loop so we don't have to handle values larger than
50 characters
2022-02-04 16:09:35 +02:00
Daniel Lockyer
a1166d575f
Updated migration logging string for correctness
no issue

- we check the presence of `members_free_signup_redirect` here but the
  log line said `members_paid_signup_redirect`
- this must have been missed in review but it's simple enough to fix
2022-02-04 12:54:11 +01:00
Sam Lord
92c3e8d7ca Added source to the verification trigger
no issue

Helps us to tell the difference between a verification trigger caused by import vs API
2022-02-03 16:20:37 +00:00
Matt Hanley
48bcb36adc Merged v4.34.3 into main
v4.34.3
2022-02-02 16:02:54 +00:00
Daniel Lockyer
2b5986c2bd Updated Admin to v4.34.3 2022-02-02 15:42:32 +00:00
Matt Hanley
6d4538cc2b Updated wording on unsubscribe confirmation with paid conditional
refs https://github.com/TryGhost/Team/issues/1228

- We were displaying a message referencing paid subscriptions to all users, which was causing confusion
- We don't have the `member.paid` flag in this context, so we use the match helper on member.status not free
2022-02-02 12:36:41 +00:00
Daniel Lockyer
fd69899b9f
Merged v4.34.2 into main
v4.34.2
2022-02-01 16:08:47 +00:00
Daniel Lockyer
4714a95748 Updated Admin to v4.34.2 2022-02-01 15:30:00 +00:00
Sam Lord
c7e0cc0bf2
Fixed the TPL variable name used for verification trigger
no issue

- not nice but it get the job done for now
2022-02-01 15:20:20 +00:00
Daniel Lockyer
805bb0b87a
Fixed variable scoping issue with email verification
no issue

- `this` isn't referring to the correct `this` in this scope, and the
  library is an import of the file anyway, so this fixes the undefined
  function call as a result
2022-02-01 13:54:13 +00:00
Sam Lord
c3eb3cd567 Fix imports triggering verification when below threshold
no issue

Swapped the variable names for importSize and importThreshold
2022-02-01 12:07:37 +00:00
Sam Lord
77f2acaf65 Fix usage of "ghostMailer" in email verification trigger
no issue

Introduced bug when refactoring the verification trigger by referencing an undefined member.
2022-02-01 12:07:32 +00:00
Sam Lord
c9ac6deb9b Fix imports triggering verification when below threshold
no issue

Swapped the variable names for importSize and importThreshold
2022-02-01 12:04:39 +00:00
Sam Lord
6d38a66662 Fix usage of "ghostMailer" in email verification trigger
no issue

Introduced bug when refactoring the verification trigger by referencing an undefined member.
2022-02-01 12:00:01 +00:00
Nicholas Scalf
da799997c2
Added alt tag for logo image on emails (#13953)
fixes: https://github.com/TryGhost/Ghost/issues/12871

- This Ghost recommended email scanner, mail-tester.com, reports not having this alt as having an impact of -0.5 out of 10 on your email score.
2022-02-01 11:29:17 +00:00
Fabien 'egg' O'Carroll
155ee6055d
Migrated redirect settings to welcome_page_urls (#14083)
refs https://github.com/TryGhost/Team/issues/1168

This migrates the existing settings onto the Tier objects, so that users
with Tiers enabled can seamless move from global settings to Tier level
settings - without losing/modifying data/functionality.
2022-02-01 11:00:13 +02:00
Daniel Lockyer
dd7227d622
Merged v4.34.1 into main
v4.34.1
2022-02-01 08:58:24 +00:00
Daniel Lockyer
c317b22005 Updated Admin to v4.34.1 2022-02-01 08:50:37 +00:00
Rishabh
93596a1375 Updated frontend routing to include products for page/post
refs https://github.com/TryGhost/Team/issues/1071

- `products` relation is needed on post/page to tackle custom tiers visibility, this change attaches `products` as default include for frontend controllers
2022-02-01 11:13:51 +05:30
Rishabh
15d692dc01 Updated frontend helpers to handle tiers visibility
refs https://github.com/TryGhost/Team/issues/1071

- visibility handling for posts/pages with restricted tiers access has changed, this change updates frontend helpers
2022-02-01 11:13:51 +05:30
Rishabh
b259bb2431 Updated content gating to use new tiers visibility
refs https://github.com/TryGhost/Team/issues/1071

- `tiers` are now attached as a list on post with restricted tiers access
2022-02-01 11:13:51 +05:30
Rishabh
d461525978 Updated validation for post/page
refs https://github.com/TryGhost/Team/issues/1071

- ignores `tiers` as its a valid visibility filter
2022-02-01 11:13:51 +05:30
Rishabh
bc5c00ba05 Updated post model to attach products relation
refs https://github.com/TryGhost/Team/issues/1071

- attaches products relation for post/pages to include tiers with access when applicable
2022-02-01 11:13:51 +05:30
Rishabh
7ab4c44475 Updated serialization for handling tiers visibility
refs https://github.com/TryGhost/Team/issues/1071

Going forward, if the visibility of a page/post is set for specific tiers, we send a `tiers` array in API response that contains list of tiers with access. This change -

- updates post/page mapper to transform existing data where `visibility` is a custom nql string to tiers array
- updates default include for post/pages to include `products`, which allows attaching relevant tiers from the pivot table
- cleans up usage of `visibility_filter` in serialization
2022-02-01 11:13:51 +05:30
Peter Zimon
209aab12e9
Remove Editor card settings panel alpha flag (#14087) 2022-01-31 14:12:05 +01:00
Fabien "egg" O'Carroll
a75908bb8a Added alpha flag for Tier welcome pages
refs https://github.com/TryGhost/Team/issues/1168
2022-01-31 13:40:33 +02:00
Kevin Ansfield
a0da017ab6 Added "improvedOnboarding" labs flag
refs https://github.com/TryGhost/Team/issues/1294

- used for working on changes to the setup flow and launch wizard
2022-01-31 11:23:14 +00:00
Rishabh Garg
eeafc8603b
Added pivot table to store tiers on post (#14038)
refs https://github.com/TryGhost/Team/issues/1071

We used `posts.visibility` originally to store visibility as `free|paid` with a character limit of 50. This same field was repurposed to store an NQL filter when member tiers is enabled. The NQL filter uses the slug of the tier name, which can easily create a filter longer than 50 characters, adding an unwanted limitation on number of tiers that can be added to post's visibility.
Going forward, we'd like to store the visibility of posts for tiers in a separate pivot table and instead store the value of `visibility` as `tiers` when restricting post access to specific tiers. This change -

- adds a new pivot table fixture for storing relation between posts and tiers
- adds a migration for creating the new table
- updates tests
2022-01-31 15:33:58 +05:30
Fabien "egg" O'Carroll
3d9e4b4c6c Synced Tiers welcome_page_urls with Settings
refs https://github.com/TryGhost/Team/issues/1168

Because Tiers is still behind a flag - any users which are not using
Tiers will still be editing their settings, and when they switch to
Tiers - the redirects will not necessarily be correct, unless we keep
the Tier columns up to date with any settings changes.
2022-01-30 17:41:57 +02:00