ghost 5.14.1 → 5.15.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.14.1.tgz → tryghost-adapter-manager-5.15.0.tgz} +0 -0
- package/components/{tryghost-api-framework-5.14.1.tgz → tryghost-api-framework-5.15.0.tgz} +0 -0
- package/components/{tryghost-api-version-compatibility-service-5.14.1.tgz → tryghost-api-version-compatibility-service-5.15.0.tgz} +0 -0
- package/components/tryghost-bootstrap-socket-5.15.0.tgz +0 -0
- package/components/tryghost-constants-5.15.0.tgz +0 -0
- package/components/{tryghost-custom-theme-settings-service-5.14.1.tgz → tryghost-custom-theme-settings-service-5.15.0.tgz} +0 -0
- package/components/tryghost-domain-events-5.15.0.tgz +0 -0
- package/components/tryghost-email-analytics-provider-mailgun-5.15.0.tgz +0 -0
- package/components/tryghost-email-analytics-service-5.15.0.tgz +0 -0
- package/components/tryghost-email-content-generator-5.15.0.tgz +0 -0
- package/components/tryghost-express-dynamic-redirects-5.15.0.tgz +0 -0
- package/components/tryghost-extract-api-key-5.15.0.tgz +0 -0
- package/components/tryghost-html-to-plaintext-5.15.0.tgz +0 -0
- package/components/{tryghost-job-manager-5.14.1.tgz → tryghost-job-manager-5.15.0.tgz} +0 -0
- package/components/tryghost-link-redirects-5.15.0.tgz +0 -0
- package/components/tryghost-link-replacement-5.15.0.tgz +0 -0
- package/components/tryghost-link-tracking-5.15.0.tgz +0 -0
- package/components/{tryghost-magic-link-5.14.1.tgz → tryghost-magic-link-5.15.0.tgz} +0 -0
- package/components/tryghost-mailgun-client-5.15.0.tgz +0 -0
- package/components/{tryghost-member-analytics-service-5.14.1.tgz → tryghost-member-analytics-service-5.15.0.tgz} +0 -0
- package/components/tryghost-member-attribution-5.15.0.tgz +0 -0
- package/components/tryghost-member-events-5.15.0.tgz +0 -0
- package/components/tryghost-members-analytics-ingress-5.15.0.tgz +0 -0
- package/components/tryghost-members-api-5.15.0.tgz +0 -0
- package/components/tryghost-members-csv-5.15.0.tgz +0 -0
- package/components/tryghost-members-events-service-5.15.0.tgz +0 -0
- package/components/tryghost-members-importer-5.15.0.tgz +0 -0
- package/components/tryghost-members-offers-5.15.0.tgz +0 -0
- package/components/{tryghost-members-payments-5.14.1.tgz → tryghost-members-payments-5.15.0.tgz} +0 -0
- package/components/{tryghost-members-ssr-5.14.1.tgz → tryghost-members-ssr-5.15.0.tgz} +0 -0
- package/components/tryghost-members-stripe-service-5.15.0.tgz +0 -0
- package/components/tryghost-minifier-5.15.0.tgz +0 -0
- package/components/tryghost-mw-api-version-mismatch-5.15.0.tgz +0 -0
- package/components/tryghost-mw-cache-control-5.15.0.tgz +0 -0
- package/components/{tryghost-mw-error-handler-5.14.1.tgz → tryghost-mw-error-handler-5.15.0.tgz} +0 -0
- package/components/tryghost-mw-session-from-token-5.15.0.tgz +0 -0
- package/components/tryghost-mw-update-user-last-seen-5.15.0.tgz +0 -0
- package/components/tryghost-mw-vhost-5.15.0.tgz +0 -0
- package/components/{tryghost-oembed-service-5.14.1.tgz → tryghost-oembed-service-5.15.0.tgz} +0 -0
- package/components/{tryghost-package-json-5.14.1.tgz → tryghost-package-json-5.15.0.tgz} +0 -0
- package/components/tryghost-security-5.15.0.tgz +0 -0
- package/components/{tryghost-session-service-5.14.1.tgz → tryghost-session-service-5.15.0.tgz} +0 -0
- package/components/{tryghost-settings-path-manager-5.14.1.tgz → tryghost-settings-path-manager-5.15.0.tgz} +0 -0
- package/components/tryghost-staff-service-5.15.0.tgz +0 -0
- package/components/{tryghost-update-check-service-5.14.1.tgz → tryghost-update-check-service-5.15.0.tgz} +0 -0
- package/components/{tryghost-verification-trigger-5.14.1.tgz → tryghost-verification-trigger-5.15.0.tgz} +0 -0
- package/components/tryghost-version-notifications-data-service-5.15.0.tgz +0 -0
- package/content/themes/casper/default.hbs +2 -2
- package/core/boot.js +12 -3
- package/core/built/admin/assets/{chunk.143.fa1d2a279fd46b1f8e63.js → chunk.143.558b9943af7b15f189ae.js} +20 -20
- package/core/built/admin/assets/{chunk.174.2edaa0869bfc2d88cf90.js → chunk.174.e1e89637eab79fdd5c5d.js} +68 -68
- package/core/built/admin/assets/{chunk.178.2292bd0899558aebead6.js → chunk.178.a9f6ddaea01e2bc76235.js} +4 -4
- package/core/built/admin/assets/{chunk.579.2de3f4300baf25f9a0db.js → chunk.579.dc11bf8dda5cf4406708.js} +5464 -4961
- package/core/built/admin/assets/{chunk.579.2de3f4300baf25f9a0db.js.LICENSE.txt → chunk.579.dc11bf8dda5cf4406708.js.LICENSE.txt} +0 -0
- package/core/built/admin/assets/fonts/{Inter.ttf → Inter-e19174fb2c0e19b1fa67492a07886c75.ttf} +0 -0
- package/core/built/admin/assets/{ghost-8919656440ad4617a07bb31069b1f71b.js → ghost-4b1b550e34300f5f4774a261aac29557.js} +487 -470
- package/core/built/admin/assets/ghost-c933adafb359b75ea1577365ce252e76.css +1 -0
- package/core/built/admin/assets/ghost-dark-04981c84bf590e0fae0a8e83e018190f.css +1 -0
- 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/{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-271c32988ab16ba175a9bfa2acb2887a.js} +45 -39
- package/core/built/admin/assets/videos/logo-loader.mp4 +0 -0
- package/core/built/admin/index.html +11 -8
- package/core/frontend/src/member-attribution/member-attribution.js +27 -0
- package/core/frontend/web/site.js +10 -7
- package/core/server/api/endpoints/redirects.js +6 -8
- 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 +7 -7
- package/core/server/api/endpoints/utils/serializers/input/settings.js +1 -0
- 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 +1 -0
- 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/schema/default-settings/default-settings.json +8 -0
- package/core/server/data/schema/schema.js +8 -0
- package/core/server/lib/lexical.js +12 -0
- package/core/server/models/base/plugins/user-type.js +4 -6
- package/core/server/models/post-revision.js +35 -0
- package/core/server/models/post.js +72 -7
- package/core/server/services/bulk-email/bulk-email-processor.js +2 -5
- 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-click-tracking/index.js +25 -0
- package/core/server/services/link-redirection/index.js +33 -0
- package/core/server/services/link-replacement/index.js +24 -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 +75 -27
- package/core/server/services/mega/template.js +1 -1
- package/core/server/services/members/api.js +0 -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/shared/config/defaults.json +2 -2
- package/core/shared/config/overrides.json +3 -2
- package/core/shared/labs.js +4 -2
- package/package.json +97 -90
- package/yarn.lock +395 -198
- package/components/tryghost-bootstrap-socket-5.14.1.tgz +0 -0
- package/components/tryghost-constants-5.14.1.tgz +0 -0
- package/components/tryghost-domain-events-5.14.1.tgz +0 -0
- package/components/tryghost-email-analytics-provider-mailgun-5.14.1.tgz +0 -0
- package/components/tryghost-email-analytics-service-5.14.1.tgz +0 -0
- package/components/tryghost-email-content-generator-5.14.1.tgz +0 -0
- package/components/tryghost-express-dynamic-redirects-5.14.1.tgz +0 -0
- package/components/tryghost-extract-api-key-5.14.1.tgz +0 -0
- package/components/tryghost-html-to-plaintext-5.14.1.tgz +0 -0
- package/components/tryghost-mailgun-client-5.14.1.tgz +0 -0
- package/components/tryghost-member-attribution-5.14.1.tgz +0 -0
- package/components/tryghost-member-events-5.14.1.tgz +0 -0
- package/components/tryghost-members-analytics-ingress-5.14.1.tgz +0 -0
- package/components/tryghost-members-api-5.14.1.tgz +0 -0
- package/components/tryghost-members-csv-5.14.1.tgz +0 -0
- package/components/tryghost-members-events-service-5.14.1.tgz +0 -0
- package/components/tryghost-members-importer-5.14.1.tgz +0 -0
- package/components/tryghost-members-offers-5.14.1.tgz +0 -0
- package/components/tryghost-members-stripe-service-5.14.1.tgz +0 -0
- package/components/tryghost-minifier-5.14.1.tgz +0 -0
- package/components/tryghost-mw-api-version-mismatch-5.14.1.tgz +0 -0
- package/components/tryghost-mw-cache-control-5.14.1.tgz +0 -0
- package/components/tryghost-mw-session-from-token-5.14.1.tgz +0 -0
- package/components/tryghost-mw-update-user-last-seen-5.14.1.tgz +0 -0
- package/components/tryghost-mw-vhost-5.14.1.tgz +0 -0
- package/components/tryghost-security-5.14.1.tgz +0 -0
- package/components/tryghost-staff-service-5.14.1.tgz +0 -0
- package/components/tryghost-version-notifications-data-service-5.14.1.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
|
-
};
|