ghost 5.14.2 → 5.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/tryghost-adapter-manager-5.16.0.tgz +0 -0
- package/components/tryghost-api-framework-5.16.0.tgz +0 -0
- package/components/tryghost-api-version-compatibility-service-5.16.0.tgz +0 -0
- package/components/tryghost-bootstrap-socket-5.16.0.tgz +0 -0
- package/components/tryghost-constants-5.16.0.tgz +0 -0
- package/components/tryghost-custom-theme-settings-service-5.16.0.tgz +0 -0
- package/components/tryghost-domain-events-5.16.0.tgz +0 -0
- package/components/tryghost-email-analytics-provider-mailgun-5.16.0.tgz +0 -0
- package/components/{tryghost-email-analytics-service-5.14.2.tgz → tryghost-email-analytics-service-5.16.0.tgz} +0 -0
- package/components/tryghost-email-content-generator-5.16.0.tgz +0 -0
- package/components/tryghost-express-dynamic-redirects-5.16.0.tgz +0 -0
- package/components/tryghost-extract-api-key-5.16.0.tgz +0 -0
- package/components/tryghost-html-to-plaintext-5.16.0.tgz +0 -0
- package/components/{tryghost-job-manager-5.14.2.tgz → tryghost-job-manager-5.16.0.tgz} +0 -0
- package/components/tryghost-link-redirects-5.16.0.tgz +0 -0
- package/components/tryghost-link-replacer-5.16.0.tgz +0 -0
- package/components/tryghost-link-tracking-5.16.0.tgz +0 -0
- package/components/tryghost-magic-link-5.16.0.tgz +0 -0
- package/components/{tryghost-mailgun-client-5.14.2.tgz → tryghost-mailgun-client-5.16.0.tgz} +0 -0
- package/components/tryghost-member-analytics-service-5.16.0.tgz +0 -0
- package/components/tryghost-member-attribution-5.16.0.tgz +0 -0
- package/components/tryghost-member-events-5.16.0.tgz +0 -0
- package/components/tryghost-members-analytics-ingress-5.16.0.tgz +0 -0
- package/components/tryghost-members-api-5.16.0.tgz +0 -0
- package/components/tryghost-members-csv-5.16.0.tgz +0 -0
- package/components/tryghost-members-events-service-5.16.0.tgz +0 -0
- package/components/tryghost-members-importer-5.16.0.tgz +0 -0
- package/components/tryghost-members-offers-5.16.0.tgz +0 -0
- package/components/{tryghost-members-payments-5.14.2.tgz → tryghost-members-payments-5.16.0.tgz} +0 -0
- package/components/{tryghost-members-ssr-5.14.2.tgz → tryghost-members-ssr-5.16.0.tgz} +0 -0
- package/components/tryghost-members-stripe-service-5.16.0.tgz +0 -0
- package/components/tryghost-minifier-5.16.0.tgz +0 -0
- package/components/tryghost-mw-api-version-mismatch-5.16.0.tgz +0 -0
- package/components/tryghost-mw-cache-control-5.16.0.tgz +0 -0
- package/components/{tryghost-mw-error-handler-5.14.2.tgz → tryghost-mw-error-handler-5.16.0.tgz} +0 -0
- package/components/tryghost-mw-session-from-token-5.16.0.tgz +0 -0
- package/components/tryghost-mw-update-user-last-seen-5.16.0.tgz +0 -0
- package/components/tryghost-mw-vhost-5.16.0.tgz +0 -0
- package/components/{tryghost-oembed-service-5.14.2.tgz → tryghost-oembed-service-5.16.0.tgz} +0 -0
- package/components/{tryghost-package-json-5.14.2.tgz → tryghost-package-json-5.16.0.tgz} +0 -0
- package/components/tryghost-referrers-5.16.0.tgz +0 -0
- package/components/{tryghost-security-5.14.2.tgz → tryghost-security-5.16.0.tgz} +0 -0
- package/components/tryghost-session-service-5.16.0.tgz +0 -0
- package/components/tryghost-settings-path-manager-5.16.0.tgz +0 -0
- package/components/tryghost-staff-service-5.16.0.tgz +0 -0
- package/components/tryghost-stats-service-5.16.0.tgz +0 -0
- package/components/tryghost-update-check-service-5.16.0.tgz +0 -0
- package/components/{tryghost-verification-trigger-5.14.2.tgz → tryghost-verification-trigger-5.16.0.tgz} +0 -0
- package/components/{tryghost-version-notifications-data-service-5.14.2.tgz → tryghost-version-notifications-data-service-5.16.0.tgz} +0 -0
- package/content/themes/casper/default.hbs +2 -2
- package/core/boot.js +10 -3
- package/core/built/admin/assets/{chunk.143.a5ef705453da0d58b75a.js → chunk.143.a281d460e6059cd0210a.js} +21 -21
- package/core/built/admin/assets/{chunk.174.2edaa0869bfc2d88cf90.js → chunk.174.e1e89637eab79fdd5c5d.js} +68 -68
- package/core/built/admin/assets/{chunk.178.579a6edabc75a2d7378f.js → chunk.178.68eca2346b6f343991e7.js} +4 -4
- package/core/built/admin/assets/{chunk.579.2de3f4300baf25f9a0db.js → chunk.579.d14c3688558f34afeb3e.js} +8872 -7851
- package/core/built/admin/assets/{chunk.579.2de3f4300baf25f9a0db.js.LICENSE.txt → chunk.579.d14c3688558f34afeb3e.js.LICENSE.txt} +45 -0
- package/core/built/admin/assets/fonts/{Inter.ttf → Inter-e19174fb2c0e19b1fa67492a07886c75.ttf} +0 -0
- package/core/built/admin/assets/ghost-6491d134c450ca676911ea17e16cd7d4.css +1 -0
- package/core/built/admin/assets/ghost-dark-297ab2fcf4cadd1c950b84089a38c5e2.css +1 -0
- package/core/built/admin/assets/{ghost-8919656440ad4617a07bb31069b1f71b.js → ghost-f2bf99b26aee662cf37fe59f87b1ceb5.js} +593 -511
- package/core/built/admin/assets/img/{amp.svg → amp-d7b72aae3315fda95921fb575dfca100.svg} +0 -0
- package/core/built/admin/assets/img/{disqus.svg → disqus-43503a3fa4f38dc8c61c7358b811f343.svg} +0 -0
- package/core/built/admin/assets/img/{favicon.ico → favicon-a9c6dbdcdc3ae568f4e0dad92149a0e3.ico} +0 -0
- package/core/built/admin/assets/img/{github.svg → github-c3a739c59df26fed12c10ffb00b33bd4.svg} +0 -0
- package/core/built/admin/assets/img/{google-docs.svg → google-docs-1e42cc272fc088da49e4b0ddfb01b006.svg} +0 -0
- package/core/built/admin/assets/img/{mailchimp.svg → mailchimp-f22b1e130aac764965b9306d7265a6b2.svg} +0 -0
- package/core/built/admin/assets/img/marketing/analytics-1-aa2d72c4e7347a3cb5666d07916b92aa.jpg +0 -0
- package/core/built/admin/assets/img/marketing/analytics-2-389d53f80041ff98111cce79facf66b8.jpg +0 -0
- package/core/built/admin/assets/img/{patreon.svg → patreon-b19a5e6418a72977a16b30039d374d04.svg} +0 -0
- package/core/built/admin/assets/img/{paypal.svg → paypal-38e9448ce7549ea4caf8e7753ae661d6.svg} +0 -0
- package/core/built/admin/assets/img/{twitter.svg → twitter-7a7a0ba12d9b5bfb8a2058764a827c31.svg} +0 -0
- package/core/built/admin/assets/img/{typeform.svg → typeform-9f23f8712d776a7515594676285266f5.svg} +0 -0
- package/core/built/admin/assets/img/{unsplash.svg → unsplash-5b329eef0b11447b4117eaf817ebad6f.svg} +0 -0
- package/core/built/admin/assets/img/{zapier.svg → zapier-bf93bc440a3fd43b73489a63c215cdc7.svg} +0 -0
- package/core/built/admin/assets/img/{zapier-logo.svg → zapier-logo-a125f24313dfe01ef49af01fc90061fb.svg} +0 -0
- package/core/built/admin/assets/{vendor-eb76d0236a09b8b6f44675dba45b1fc6.js → vendor-b2375e2f383cbc3fd73340c4b656c993.js} +59 -47
- package/core/built/admin/assets/videos/logo-loader.mp4 +0 -0
- package/core/built/admin/index.html +11 -8
- package/core/frontend/helpers/search.js +1 -15
- package/core/frontend/src/member-attribution/member-attribution.js +64 -3
- package/core/frontend/web/site.js +10 -7
- package/core/server/api/endpoints/index.js +4 -0
- package/core/server/api/endpoints/links.js +25 -0
- package/core/server/api/endpoints/posts.js +2 -1
- package/core/server/api/endpoints/redirects.js +6 -8
- package/core/server/api/endpoints/stats.js +24 -0
- package/core/server/api/endpoints/utils/permissions.js +2 -16
- package/core/server/api/endpoints/utils/serializers/input/pages.js +5 -5
- package/core/server/api/endpoints/utils/serializers/input/posts.js +13 -8
- package/core/server/api/endpoints/utils/serializers/input/settings.js +1 -0
- package/core/server/api/endpoints/utils/serializers/output/mappers/activity-feed-events.js +51 -0
- package/core/server/api/endpoints/utils/serializers/output/mappers/comments.js +10 -1
- package/core/server/api/endpoints/utils/serializers/output/mappers/posts.js +1 -1
- package/core/server/api/endpoints/utils/validators/input/pages.js +24 -9
- package/core/server/api/endpoints/utils/validators/input/posts.js +24 -9
- package/core/server/data/exporter/table-lists.js +4 -1
- package/core/server/data/migrations/utils/settings.js +1 -3
- package/core/server/data/migrations/versions/5.15/2022-09-12-16-10-add-posts-lexical-column.js +8 -0
- package/core/server/data/migrations/versions/5.15/2022-09-14-12-46-add-email-track-clicks-setting.js +8 -0
- package/core/server/data/migrations/versions/5.15/2022-09-16-08-22-add-post-revisions-table.js +9 -0
- package/core/server/data/migrations/versions/5.16/2022-09-19-09-04-add-link-redirects-table.js +10 -0
- package/core/server/data/migrations/versions/5.16/2022-09-19-09-05-add-members-link-click-events-table.js +8 -0
- package/core/server/data/migrations/versions/5.16/2022-09-19-17-44-add-referrer-columns-to-member-events-table.js +21 -0
- package/core/server/data/migrations/versions/5.16/2022-09-19-17-44-add-referrer-columns-to-subscription-events-table.js +21 -0
- package/core/server/data/schema/default-settings/default-settings.json +8 -0
- package/core/server/data/schema/schema.js +29 -1
- package/core/server/lib/lexical.js +12 -0
- package/core/server/models/base/plugins/user-type.js +4 -6
- package/core/server/models/link-redirect.js +65 -0
- package/core/server/models/member-link-click-event.js +26 -0
- package/core/server/models/post-revision.js +35 -0
- package/core/server/models/post.js +90 -9
- package/core/server/services/bulk-email/bulk-email-processor.js +9 -10
- package/core/server/services/{redirects → custom-redirects}/api.js +0 -0
- package/core/server/services/{redirects → custom-redirects}/index.js +0 -0
- package/core/server/services/{redirects → custom-redirects}/utils.js +0 -0
- package/core/server/services/{redirects → custom-redirects}/validation.js +0 -0
- package/core/server/services/explore/service.js +5 -3
- package/core/server/services/link-redirection/LinkRedirectRepository.js +88 -0
- package/core/server/services/link-redirection/index.js +31 -0
- package/core/server/services/link-tracking/LinkClickRepository.js +69 -0
- package/core/server/services/link-tracking/PostLinkRepository.js +62 -0
- package/core/server/services/link-tracking/index.js +48 -0
- package/core/server/services/mega/email-preview.js +7 -0
- package/core/server/services/mega/mega.js +1 -1
- package/core/server/services/mega/post-email-serializer.js +101 -27
- package/core/server/services/member-attribution/index.js +12 -5
- package/core/server/services/members/api.js +1 -2
- package/core/server/services/permissions/index.js +1 -2
- package/core/server/services/posts/posts-service.js +7 -16
- package/core/server/services/posts/stats/post-stats.js +35 -0
- package/core/server/services/staff/index.js +10 -1
- package/core/server/services/url/config.js +2 -0
- package/core/server/web/admin/app.js +8 -2
- package/core/server/web/api/endpoints/admin/routes.js +5 -0
- package/core/shared/config/defaults.json +7 -7
- package/core/shared/config/overrides.json +3 -2
- package/core/shared/labs.js +4 -2
- package/package.json +115 -107
- package/yarn.lock +828 -414
- package/components/tryghost-adapter-manager-5.14.2.tgz +0 -0
- package/components/tryghost-api-framework-5.14.2.tgz +0 -0
- package/components/tryghost-api-version-compatibility-service-5.14.2.tgz +0 -0
- package/components/tryghost-bootstrap-socket-5.14.2.tgz +0 -0
- package/components/tryghost-constants-5.14.2.tgz +0 -0
- package/components/tryghost-custom-theme-settings-service-5.14.2.tgz +0 -0
- package/components/tryghost-domain-events-5.14.2.tgz +0 -0
- package/components/tryghost-email-analytics-provider-mailgun-5.14.2.tgz +0 -0
- package/components/tryghost-email-content-generator-5.14.2.tgz +0 -0
- package/components/tryghost-express-dynamic-redirects-5.14.2.tgz +0 -0
- package/components/tryghost-extract-api-key-5.14.2.tgz +0 -0
- package/components/tryghost-html-to-plaintext-5.14.2.tgz +0 -0
- package/components/tryghost-magic-link-5.14.2.tgz +0 -0
- package/components/tryghost-member-analytics-service-5.14.2.tgz +0 -0
- package/components/tryghost-member-attribution-5.14.2.tgz +0 -0
- package/components/tryghost-member-events-5.14.2.tgz +0 -0
- package/components/tryghost-members-analytics-ingress-5.14.2.tgz +0 -0
- package/components/tryghost-members-api-5.14.2.tgz +0 -0
- package/components/tryghost-members-csv-5.14.2.tgz +0 -0
- package/components/tryghost-members-events-service-5.14.2.tgz +0 -0
- package/components/tryghost-members-importer-5.14.2.tgz +0 -0
- package/components/tryghost-members-offers-5.14.2.tgz +0 -0
- package/components/tryghost-members-stripe-service-5.14.2.tgz +0 -0
- package/components/tryghost-minifier-5.14.2.tgz +0 -0
- package/components/tryghost-mw-api-version-mismatch-5.14.2.tgz +0 -0
- package/components/tryghost-mw-cache-control-5.14.2.tgz +0 -0
- package/components/tryghost-mw-session-from-token-5.14.2.tgz +0 -0
- package/components/tryghost-mw-update-user-last-seen-5.14.2.tgz +0 -0
- package/components/tryghost-mw-vhost-5.14.2.tgz +0 -0
- package/components/tryghost-session-service-5.14.2.tgz +0 -0
- package/components/tryghost-settings-path-manager-5.14.2.tgz +0 -0
- package/components/tryghost-staff-service-5.14.2.tgz +0 -0
- package/components/tryghost-update-check-service-5.14.2.tgz +0 -0
- package/core/built/admin/assets/ghost-40adc8310dcdd0be163cbf7b9d89c59a.css +0 -1
- package/core/built/admin/assets/ghost-dark-13b669d50f494edf24d832b32ece2177.css +0 -1
- package/core/server/services/permissions/public.js +0 -76
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
const _ = require('lodash');
|
|
2
|
-
const Promise = require('bluebird');
|
|
3
|
-
const errors = require('@tryghost/errors');
|
|
4
|
-
const tpl = require('@tryghost/tpl');
|
|
5
|
-
const parseContext = require('./parse-context');
|
|
6
|
-
const _private = {};
|
|
7
|
-
|
|
8
|
-
const messages = {
|
|
9
|
-
error: 'You do not have permission to retrieve {docName} with that status'
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* @TODO:
|
|
14
|
-
*
|
|
15
|
-
* - remove if we drop `extraFilters` (see e.g. post model)
|
|
16
|
-
* - we currently accept `?status={value}` in the API
|
|
17
|
-
* - but instead people should use the `?filter=status:{value}`
|
|
18
|
-
*
|
|
19
|
-
* This function protects against:
|
|
20
|
-
*
|
|
21
|
-
* - public context cannot fetch draft/scheduled posts
|
|
22
|
-
*/
|
|
23
|
-
_private.applyStatusRules = function applyStatusRules(docName, method, opts) {
|
|
24
|
-
const err = new errors.NoPermissionError({message: tpl(messages.error, {docName: docName})});
|
|
25
|
-
|
|
26
|
-
// Enforce status 'active' for users
|
|
27
|
-
if (docName === 'users') {
|
|
28
|
-
if (!opts.status) {
|
|
29
|
-
return 'all';
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
// Enforce status 'published' for posts
|
|
34
|
-
if (docName === 'posts') {
|
|
35
|
-
if (!opts.status) {
|
|
36
|
-
return 'published';
|
|
37
|
-
} else if (
|
|
38
|
-
method === 'read'
|
|
39
|
-
&& (opts.status === 'draft' || opts.status === 'all')
|
|
40
|
-
&& _.isString(opts.uuid) && _.isUndefined(opts.id) && _.isUndefined(opts.slug)
|
|
41
|
-
) {
|
|
42
|
-
// public read requests can retrieve a draft, but only by UUID
|
|
43
|
-
return opts.status;
|
|
44
|
-
} else if (opts.status !== 'published') {
|
|
45
|
-
// any other parameter would make this a permissions error
|
|
46
|
-
throw err;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
return opts.status;
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* API Public Permission Rules
|
|
55
|
-
* This method enforces the rules for public requests
|
|
56
|
-
* @param {String} docName
|
|
57
|
-
* @param {String} method (read || browse)
|
|
58
|
-
* @param {Object} options
|
|
59
|
-
* @returns {Object} options
|
|
60
|
-
*/
|
|
61
|
-
module.exports = function applyPublicRules(docName, method, options) {
|
|
62
|
-
try {
|
|
63
|
-
// If this is a public context
|
|
64
|
-
if (parseContext(options.context).public === true) {
|
|
65
|
-
if (method === 'browse') {
|
|
66
|
-
options.status = _private.applyStatusRules(docName, method, options);
|
|
67
|
-
} else if (method === 'read') {
|
|
68
|
-
options.data.status = _private.applyStatusRules(docName, method, options.data);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
return Promise.resolve(options);
|
|
73
|
-
} catch (err) {
|
|
74
|
-
return Promise.reject(err);
|
|
75
|
-
}
|
|
76
|
-
};
|