From b6b59ffa85f6eb0c54627091b9e8b2f50d45d4bf Mon Sep 17 00:00:00 2001 From: Rob Lester Date: Tue, 13 Jan 2026 12:24:40 +0000 Subject: [PATCH 1/2] Added member commenting schema for comment moderation ref https://linear.app/ghost/issue/FEA-487 - Added `can_comment` (boolean) to member properties - Added `commenting` property to member with `member-commenting` definition: - `disabled` (boolean, required) - `disabled_reason` (string, minLength: 1, maxLength: 2000) - `disabled_until` (string|null, format: date-time) - Added `member_commenting.json` base schema for disable endpoint - Added `member_commenting-disable.json` schema for `/members/:id/commenting` endpoint --- .../lib/schemas/comment_bans-add.json | 19 ------------ .../admin-api-schema/lib/schemas/index.js | 2 +- .../schemas/member_commenting-disable.json | 7 +++++ ...mment_bans.json => member_commenting.json} | 8 ++--- .../lib/schemas/members-edit.json | 15 ++------- .../admin-api-schema/lib/schemas/members.json | 31 +++++++++++-------- 6 files changed, 32 insertions(+), 50 deletions(-) delete mode 100644 packages/admin-api-schema/lib/schemas/comment_bans-add.json create mode 100644 packages/admin-api-schema/lib/schemas/member_commenting-disable.json rename packages/admin-api-schema/lib/schemas/{comment_bans.json => member_commenting.json} (74%) diff --git a/packages/admin-api-schema/lib/schemas/comment_bans-add.json b/packages/admin-api-schema/lib/schemas/comment_bans-add.json deleted file mode 100644 index 770b8ecd4..000000000 --- a/packages/admin-api-schema/lib/schemas/comment_bans-add.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "comment_bans.add", - "title": "comment_bans.add", - "description": "Schema for comment_bans.add", - "type": "object", - "additionalProperties": false, - "properties": { - "comment_bans": { - "type": "array", - "minItems": 1, - "maxItems": 1, - "items": { - "allOf": [{ "$ref": "comment_bans#/definitions/comment_ban" }] - } - } - }, - "required": ["comment_bans"] -} diff --git a/packages/admin-api-schema/lib/schemas/index.js b/packages/admin-api-schema/lib/schemas/index.js index 35c917826..11ac30cd0 100644 --- a/packages/admin-api-schema/lib/schemas/index.js +++ b/packages/admin-api-schema/lib/schemas/index.js @@ -1,5 +1,5 @@ module.exports = [ - 'comment_bans-add', + 'member_commenting-disable', 'images-upload', 'media-upload', 'labels-add', diff --git a/packages/admin-api-schema/lib/schemas/member_commenting-disable.json b/packages/admin-api-schema/lib/schemas/member_commenting-disable.json new file mode 100644 index 000000000..dd4c21673 --- /dev/null +++ b/packages/admin-api-schema/lib/schemas/member_commenting-disable.json @@ -0,0 +1,7 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "member_commenting.disable", + "title": "member_commenting.disable", + "description": "Schema for member_commenting.disable", + "allOf": [{ "$ref": "member_commenting#/definitions/member_commenting" }] +} diff --git a/packages/admin-api-schema/lib/schemas/comment_bans.json b/packages/admin-api-schema/lib/schemas/member_commenting.json similarity index 74% rename from packages/admin-api-schema/lib/schemas/comment_bans.json rename to packages/admin-api-schema/lib/schemas/member_commenting.json index 3d4f15f3d..94341a5ca 100644 --- a/packages/admin-api-schema/lib/schemas/comment_bans.json +++ b/packages/admin-api-schema/lib/schemas/member_commenting.json @@ -1,10 +1,10 @@ { "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "comment_bans", - "title": "comment_bans", - "description": "Base comment_bans definitions", + "$id": "member_commenting", + "title": "member_commenting", + "description": "Base member_commenting definitions", "definitions": { - "comment_ban": { + "member_commenting": { "type": "object", "additionalProperties": false, "properties": { diff --git a/packages/admin-api-schema/lib/schemas/members-edit.json b/packages/admin-api-schema/lib/schemas/members-edit.json index 32c59012e..4d209777c 100644 --- a/packages/admin-api-schema/lib/schemas/members-edit.json +++ b/packages/admin-api-schema/lib/schemas/members-edit.json @@ -54,19 +54,8 @@ "can_comment": { "type": "boolean" }, - "comment_ban": { - "oneOf": [ - { - "type": "object", - "additionalProperties": false, - "properties": { - "reason": { "type": "string", "minLength": 1, "maxLength": 2000 }, - "expires_at": { "type": ["string", "null"], "format": "date-time" } - }, - "required": ["reason"] - }, - { "type": "null" } - ] + "commenting": { + "$ref": "members#/definitions/member-commenting" } } } diff --git a/packages/admin-api-schema/lib/schemas/members.json b/packages/admin-api-schema/lib/schemas/members.json index fc6a4f696..c19fcd1fe 100644 --- a/packages/admin-api-schema/lib/schemas/members.json +++ b/packages/admin-api-schema/lib/schemas/members.json @@ -51,19 +51,8 @@ "can_comment": { "type": "boolean" }, - "comment_ban": { - "oneOf": [ - { - "type": "object", - "additionalProperties": false, - "properties": { - "reason": { "type": "string", "minLength": 1, "maxLength": 2000 }, - "expires_at": { "type": ["string", "null"], "format": "date-time" } - }, - "required": ["reason"] - }, - { "type": "null" } - ] + "commenting": { + "$ref": "#/definitions/member-commenting" } } }, @@ -163,6 +152,22 @@ } ] } + }, + "member-commenting": { + "description": "Commenting status of the member", + "oneOf": [ + { + "type": "object", + "additionalProperties": false, + "properties": { + "disabled": { "type": "boolean" }, + "disabled_reason": { "type": "string", "minLength": 1, "maxLength": 2000 }, + "disabled_until": { "type": ["string", "null"], "format": "date-time" } + }, + "required": ["disabled"] + }, + { "type": "null" } + ] } } } From 8568e9752e39f7287f9bd40e00adda5ccd8bd483 Mon Sep 17 00:00:00 2001 From: Rob Lester Date: Tue, 20 Jan 2026 12:52:10 +0000 Subject: [PATCH 2/2] Added hide_comments field to member commenting disable schema ref https://linear.app/ghost/issue/FEA-487 Adds optional `hide_comments` boolean to the disable endpoint, allowing admins to hide a member's existing comments when disabling their ability to comment. --- .../schemas/member_commenting-disable.json | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/packages/admin-api-schema/lib/schemas/member_commenting-disable.json b/packages/admin-api-schema/lib/schemas/member_commenting-disable.json index dd4c21673..e1fde6f62 100644 --- a/packages/admin-api-schema/lib/schemas/member_commenting-disable.json +++ b/packages/admin-api-schema/lib/schemas/member_commenting-disable.json @@ -2,6 +2,21 @@ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "member_commenting.disable", "title": "member_commenting.disable", - "description": "Schema for member_commenting.disable", - "allOf": [{ "$ref": "member_commenting#/definitions/member_commenting" }] + "type": "object", + "additionalProperties": false, + "properties": { + "reason": { + "type": "string", + "minLength": 1, + "maxLength": 2000 + }, + "expires_at": { + "type": ["string", "null"], + "format": "date-time" + }, + "hide_comments": { + "type": "boolean" + } + }, + "required": ["reason"] }