mirror of
https://github.com/TryGhost/Ghost.git
synced 2025-01-20 22:42:53 -05:00
04f0b9fc3f
ref https://linear.app/ghost/issue/PLG-296/ When logged in as an Admin, comments-ui switches comment reads from the Members API over to the Admin API so that hidden comments can be displayed to allow moderation activities. However, the Admin API not using member authentication and CORS preventing the front-end members auth cookie being passed over to the Admin API domain meant that the logged-in member's likes were missing when fetching via the Admin API as there is no available reference to the logged in member. This change works around the problem by introducing an `impersonate_member_uuid` param to the comments read/browse endpoints of the Admin API. When passed, the provided uuid is used to simulate that member being logged in so that likes are correctly shown. - Introduced `impersonation_member_id` parameter to resolve issues with admin API not returning correct "liked" status for comments when an admin is logged in. - Updated API endpoints in `comment-replies.js` and `comments.js` to handle `impersonation_member_id`. - Adjusted `CommentsController` to validate and process the `impersonation_member_id` parameter before passing it to database queries. - Enhanced test coverage to ensure proper handling of the new parameter and accurate "liked" status behavior. |
||
---|---|---|
.. | ||
src | ||
test | ||
.env | ||
.eslintrc.js | ||
.yarnrc | ||
LICENSE | ||
package.json | ||
playwright.config.ts | ||
postcss.config.cjs | ||
README.md | ||
tailwind.config.js | ||
tsconfig.json | ||
tsconfig.node.json | ||
vite.config.ts |
Comments UI
Comments widget that is embedded at the bottom of posts in Ghost.
Development
Pre-requisites
- Run
yarn
in Ghost monorepo root
Running via Ghost yarn dev
in root folder
You can automatically start the comments dev server when developing Ghost by running Ghost (in root folder) via yarn dev --all
or yarn dev --comments
. This will host the comments JavaScript files, and makes sure that Ghost uses these locally hosted assets instead of the ones from the CDN.
Release
A patch release can be rolled out instantly in production, whereas a minor/major release requires the Ghost monorepo to be updated and released. In either case, you need sufficient permissions to release @tryghost
packages on NPM.
Patch release
- Run
yarn ship
and select a patch version when prompted - (Optional) Clear JsDelivr cache to get the new version out instantly (docs). Typically, you'll need to open
https://purge.jsdelivr.net/ghost/comments-ui@~${COMMENTS_UI_VERSION}/umd/comments-ui.min.js
andhttps://purge.jsdelivr.net/ghost/comments-ui@~${COMMENTS_UI_VERSION}/umd/main.css
in your browser, whereCOMMENTS_UI_VERSION
is the latest minor version inghost/core/core/shared/config/defaults.json
(code)
Minor / major release
- Run
yarn ship
and select a minor or major version when prompted - Update the Comments UI version in
ghost/core/core/shared/config/defaults.json
to the new minor or major version (code) - Wait until a new version of Ghost is released
Copyright & License
Copyright (c) 2013-2024 Ghost Foundation - Released under the MIT license.