Commit Graph

513 Commits

Author SHA1 Message Date
Naz
3f59c1893b Renamed variables to better fit the context
no issue

- Slightly less code without compromising readability
2021-11-09 16:07:23 +04:00
Naz
f0242baf9f Added static file limit handling in Files API
refs https://github.com/TryGhost/Toolbox/issues/114

- Just like with media files same limits apply and can be configured through the usual limit service's config
2021-11-08 16:09:30 +04:00
Naz
a099073fde Added Files API behind an alpha flag
refs https://github.com/TryGhost/Toolbox/issues/114

- Files API is meant to be used for non-executable file uploads of all sorts
- The files are stored and retrieved for download as-is
2021-11-08 11:40:17 +04:00
Naz
f43eeacfd0 Changed thumbnail to be an optional parameter
refs https://github.com/TryGhost/Toolbox/issues/95

- With incoming support of audio media files thumbnail would not be a required parameter
2021-11-05 17:17:18 +04:00
Naz
091240db48 Added thumbnail upload support to Media API
refs https://github.com/TryGhost/Toolbox/issues/95

- Each media file quires a thumbnail and these changes provide a capability to upload them along with media files.
- The thumbnail file is always required and has to be the format of already supported image formats
- The thumbnail should be uploaded as a part of "thumbnail" attachment in the request
- The regression tests added with this changeset will be claened up and moved to unit-tests (this is a dirty-but-working version!)
- The thumbnail always gets a name of the uploaded media file and keeps it's own extension.
- The thumbnails is accessible under the url present in the "thumbnail_url" reponse field
2021-11-04 10:23:29 +04:00
Fabien O'Carroll
91efa4605c Used DynamicRedirectManager for Custom Redirects
refs https://github.com/TryGhost/Members/commit/9e59f5a9

Since we have a DynamicRedirectManager for handling adding/removing
redirects at runtime, we no longer need the custom-redirects middleware.
The redirects service does however need an init method now to add the
custom redirects at Ghost boot, so it's been refactored into our Class &
DI pattern.
2021-11-03 07:41:55 +13:00
Naz
d657432531 Cleaned up use of 'content/media' magic string
refs https://linear.app/tryghost/issue/CORE-121/create-a-video-storage-adapter

- `content/media` path is now a part of the constants package and should've been used instead of a magic-string.
2021-11-03 00:33:28 +13:00
Naz
02da62ee48 Added limit service check for uploaded media filesize
refs https://linear.app/tryghost/issue/CORE-121/create-a-video-storage-adapter

- Uploading large files is costly and might cause DDoS. Limits would allow fair use of the site instance.
- The configureation in hostSettings to enable an "uploads" limit would look like following:
```
"hostSettings": {
    "limits": {
            "uploads": {
                "max": 5,
                "error": "Your plan supports uploads of max size up to {{max}}MB. Please upgrade to reenable uploading."
            }
    }
}
```
- Read more at ba37890be4/packages/limit-service (usage)
2021-11-03 00:33:28 +13:00
Naz
4a551661d9 Implemented '/media/upload' API endpoint
refs https://linear.app/tryghost/issue/CORE-121/create-a-video-storage-adapter

- This is an experimental implementation of video file upload support
- Also the output serializer skipped use of url utils in favor of inline implementatoin - this should almost certainly be it's own package
2021-11-03 00:33:28 +13:00
Rishabh
1a9705b824 🐛 Fixed error in setting page access to tiers
closes https://github.com/TryGhost/Ghost/issues/13704
closes https://github.com/TryGhost/Team/issues/1186

- updates page serializer to handle new `visibility_filter` property for filtering access on specific tier
- this change was already added for `posts` but was missed on `pages`, so parsing filter on `visibility` filter was failing
2021-11-02 13:36:32 +05:30
Naz
d89b8448ab Added a not to the Images API ref field
refs https://github.com/TryGhost/Ghost/pull/10534

- The original PR has no explanation around the purpose of the ref field and it's easy to forget without knowing a wider context. Documented it to remember next time we come around working on this part of the codebase!
2021-10-28 16:05:54 +04:00
Fabien O'Carroll
bccc8790f0 Fixed max-complexity-warnings for stripe_connect API
no-issue

This removes the logic to check if stripe connect is allowed into the
stripe connect service, which makes the feature easier to maintain, as
well as fixes the v3 API - which previously did not have this check.
2021-10-25 14:06:28 +02:00
Fabien O'Carroll
a68b96001c Fixed max-complexity-warnings for members API
no-issue

This removes logic from the Members API controller, and into the Members
BREAD service, this allows our controllers to be simpler and easier to
maintain, as well as keeping the important logic all together.
2021-10-25 14:06:12 +02:00
Kevin Ansfield
a485509a2f
🐛 Fixed GA labs flags not appearing enabled in settings API (#13681)
no issue

The way GA flags were introduced means that they stop existing in the `'labs'` setting in the db and are instead forced to always return `true` when checking the flag in the labs service. However, Admin which uses the flags fetches them via the `/settings/` API endpoint which was only returning the raw labs setting db value meaning GA flags appeared to be disabled unless the flag had previously been enabled and no settings save had occured.

- updated the settings bread service to replace the labs setting value with the JSON stringified output of `labs.getAll()` which is the ultimate source-of-truth for a feature being enabled/disabled
  - extracted `browse()` behaviour to an internal `_formatBrowse()` method so we can apply the same filtering/modification for output of `browse()` and `edit()`

Co-authored-by: Fabien O'Carroll <fabien@allou.is>
2021-10-22 19:59:13 +01:00
Fabien O'Carroll
696d8e3c49 Added 404 handling for edit Offer
no-issue

This was also missing as part of the Offers API.
2021-10-22 16:16:39 +02:00
Fabien O'Carroll
363eb94aee Handled 404 for Offer not found
no-issue

This was missing handling! We need to throw a NotFoundError so we
return with the correct response.
2021-10-22 14:22:33 +02:00
Naz
07afb08875 Made storage calls related to images use "images" feature
refs https://linear.app/tryghost/issue/CORE-1/multiple-adapters-per-type

- Having this preemptive change allows to separate implementation of "image" storage from future usecases like "videos", "audios" etc. Even if the "image" adapter is not configured the default behavior will fallback to use the "active" storage adapter. If there's a need to handle "images" differently through a custom apapter that'll work out of the box ;)
2021-10-21 20:22:45 +13:00
Naz
6e075c78bf Moved URL service to backend
refs https://linear.app/tryghost/issue/CORE-104/decouple-frontend-routing-events-from-urlserver-events

- URL module is part of the backend heavily dependent on the model and fits perfectly here. Frontend should get the data it needs by passing a URL manager instance to it
2021-10-19 07:29:09 +13:00
Fabien O'Carroll
b1914758b8 Added support for filter Offers by status
refs https://github.com/TryGhost/Team/issues/1131

This will allow Ghost Admin to display separate lists of active and
archived Offers! We must pass the options through so that the
OffersService is able to handle the filter passed in the request.
2021-10-12 18:39:25 +02:00
Fabien O'Carroll
1bb9c3a9ac Invalidated site cache when adding & editing Offers
no-issue

Because adding and editing Offers can update the redirects for Ghost, we
should ensure that any site cache is cleared so as to not conflict with
Offer redirects.
2021-10-12 15:20:31 +02:00
Hannah Wolfe
0bdaa216e5
Refactored tpl to never be used in DI
- Ghost has a set of core packages that it is safe to require directly in any file - tpl is one of them!
- This keeps the DI signature smaller and easier to reason about
2021-10-11 15:19:54 +01:00
homersimpsons
3bb7813613
Replaced i18n.t w/ tpl helper in core/server/api/canary/* (#13521)
refs: #13380

- The i18n package is deprecated. It is being replaced with the tpl package.
2021-10-11 14:35:43 +01:00
Naz
8737ec8888 Added createdAtVersion property to newly created notifications
refs https://linear.app/tryghost/issue/CORE-64/resolve-undissmissable-update-notification-banners

- The property is meant to track Ghost instance version the notification was received and processed at.
- This information should be useful in the future to dismiss outdated notifications
2021-10-11 23:38:40 +13:00
Kevin Ansfield
c33b596e9c
Added API tests for custom theme settings (#13519)
refs https://github.com/TryGhost/Team/issues/1104

- bumped `@tryghost/custom-theme-settings-service` so it throws a more appropriate `ValidationError` when setting keys don't exist or a select value is not known
- changed the custom theme settings service to have a `.init()` method which creates an instance of the service under `.api` so that we're able to create the instance at a particular point in the boot process when we know the models have been initialised
  - there were problems in tests because the service was being initialised through the require chain before models were initialised through the boot process
- fixed incorrect `camelCase` of resource name in API responses
2021-10-08 16:18:49 +01:00
Brilliant Djaka
fc55089266
Replaced i18n.t w/ tpl helper in preview.js (#13494)
refs: #13380

The i18n package is deprecated. It is being replaced with the tpl package.
2021-10-08 15:32:51 +01:00
Aleksander Chromik
df0d92f060
Replaced i18n.t w/ tpl in class OEmbed (#13492)
refs: #13380

- The i18n package is deprecated. It is being replaced with the tpl package.

Co-authored-by: Aleksander Chromik <aleksander.chromik@footballco.com>
2021-10-08 15:32:16 +01:00
PJ
940d10fc3b
Replaced i18n with tpl in oembed.js (#13472)
refs: #13380

- The i18n package is deprecated. It is being replaced with the tpl package.
2021-10-08 15:20:41 +01:00
Ayoub BERDEDDOUCH
3255c806f8
Replaced i18n with tpl core/server/api/canary/session.js (#13487)
refs: #13380

- The i18n package is deprecated. It is being replaced with the tpl package.
2021-10-08 15:11:26 +01:00
Ayoub BERDEDDOUCH
41d03bd08b
replaced i18n with tpl (#13484)
refs: #13380

- The i18n package is deprecated. It is being replaced with the tpl package.
2021-10-07 16:51:28 +01:00
Naz
c65e62b7df Promoted email-only feature to general availability
closes https://github.com/TryGhost/Team/issues/1125
refs 3c822e0457

- Email-only is not considered a general availability feature and can be used without special flags.
- It allows to publish a new post type "email only" that only goes out as an email newletter and is available through an undescoverable URL (does not appear anywhere publicly similarly to preview posts) on the site.
2021-10-07 12:08:56 +02:00
thick-hollins
fa7048c61b Replaced i18n with tpl in webhooks.js
refs: TryGhost#13380
2021-10-07 09:16:20 +01:00
Ania Kowalska
c38b4ef1f7 Replaced i18n.t w/ tpl helper in pages-public.js
refs: #13380
2021-10-07 09:14:15 +01:00
Ania Kowalska
1d534bcd65 Replaced i18n.t w/ tpl helper in pages.js
refs: #13380
2021-10-07 09:14:15 +01:00
Deeksha Agrawal
e49c4a48ad
Replaced i18n.t w/ tpl helper in slugs.js (#13463)
refs: #13380

- The i18n package is deprecated. It is being replaced with the tpl package.
2021-10-06 11:42:33 +01:00
Deeksha Agrawal
f6d4d67bbd
Replaced i18n.t w/ tpl helper in memberSigninUrls.js (#13462)
refs: #13380

- The i18n package is deprecated. It is being replaced with the tpl package.
2021-10-06 11:41:37 +01:00
LucasOe
c06c63b92b
Replaced i18n.t w/ tpl helper in members.js (#13456)
refs: #13380

- The i18n package is deprecated. It is being replaced with the tpl package.
2021-10-06 11:40:32 +01:00
Fabien O'Carroll
ff0b1a61b3 Added initial Offers API
refs https://github.com/TryGhost/Team/issues/1083

This is a WIP for the Offers API so that Admin development can begin to
use it.
2021-10-06 12:33:19 +02:00
Ozan Uslan
68de391c98 Replaced i18n.t w/ tpl in invites.js for canary
refs: TryGhost#13380

- The i18n package is deprecated. It is being replaced with the tpl package.
2021-10-06 10:19:47 +01:00
Ozan Uslan
027e25a47f Replaced i18n.t w/ tpl in invitations.js for canary
refs: TryGhost#13380

- The i18n package is deprecated. It is being replaced with the tpl package.
2021-10-06 10:19:47 +01:00
Ozan Uslan
71bf5e5f19 Replaced i18n.t w/ tpl in images.js for canary
refs: TryGhost#13380

- The i18n package is deprecated. It is being replaced with the tpl package.
- Important Note: invalidFile error message does not have fields for variables, but it is being passed variables.
2021-10-06 10:19:47 +01:00
Ania Kowalska
dff788c64e
Replaced i18n.t w/ tpl helper in invites.js (#13433)
refs: #13380

* The i18n package is deprecated. It is being replaced with the tpl package.
* Replaced i18n.t w/ tpl helper in invites.js
* Replaced i18n.t w/ tpl helper in labels.js
2021-10-06 09:49:20 +01:00
Alex Nuttall
162502b19e
Replaced i18n.t w/ tpl helper in posts.js (#13455)
refs: #13380

The i18n package is deprecated. It is being replaced with the tpl package.

Co-authored-by: thick-hollins <alexnuttall@zoho.eu>
2021-10-06 08:59:21 +01:00
Gustavo Hernández
5438644a51
Replaced i18n.t w/ tpl in tags.js (#13428)
refs: #13380

- The i18n package is deprecated. It is being replaced with the tpl package.
2021-10-05 10:00:00 +01:00
Guillaume
1cd1ae36bf Replaced i18n.t w/ tpl helper in mail.js
refs #13380
- this is a refactor to do everywhere
2021-10-05 09:43:47 +01:00
Ozan Uslan
acf4a4b227
Replaced i18n.t w/ tpl helper in email and integrations (#13424)
refs: #13380

The i18n package is deprecated. It is being replaced with the tpl
package.

* Replaced i18n.t w/ tpl helper in email
* Replaced i18n.t w/ tpl helper in integrations
2021-10-04 10:02:27 +01:00
Kenneth Fitzgerald
31b998e1e1
Replaced i18n.t w/ tpl helper in permissions (#13419)
refs: #13380

The i18n package is deprecated. It is being replaced with the tpl package.

Co-authored-by: Kenneth Fitzgerald <fitzgeraldkd@gmail.com>
2021-10-04 09:58:42 +01:00
Megharth Lakhataria
1e73f0b07a
Replaced i18n.t w/ tpl helper in email-post.js and email-preview.js (#13418)
refs: #13380

- this is to replace i18n.t with tpl because i18n.t is deprecated
- Replaced i18n.t with tpl helper in email-post.js
- Replaced i18n.t with tpl helper in email-preview.js
2021-10-04 09:57:08 +01:00
Ania Kowalska
4e4d092988
Replaced i18n.t w/ tpl helper (#13403)
refs: #13380

* Replaced i18n.t w/ tpl helper in authentication.js
* Replaced i18n.t w/ tpl helper in authors-public
2021-10-04 09:55:30 +01:00
Ania Kowalska
506f26b5ce
Replaced i18n.t w/ tpl helper in authentication.js (#13402)
refs: #13380
2021-10-04 09:54:15 +01:00
Kenneth Fitzgerald
548e83d665
Replaced i18n.t w/ tpl helper in serializers/output (#13401)
* Replaced i18n.t w/ tpl helper in users

refs: #13380
The i18n package is deprecated. It is being replaced with the tpl package.

* Replaced i18n.t w/ tpl helper in authentication

refs: #13380
The i18n package is deprecated. It is being replaced with the tpl package.

Co-authored-by: Kenneth Fitzgerald <fitzgeraldkd@gmail.com>
2021-10-01 19:00:03 +01:00