diff --git a/app/assets/javascripts/discourse/app/lib/fabricators.js b/app/assets/javascripts/discourse/app/lib/fabricators.js index 30252748c8c..0f02f0158f1 100644 --- a/app/assets/javascripts/discourse/app/lib/fabricators.js +++ b/app/assets/javascripts/discourse/app/lib/fabricators.js @@ -82,6 +82,8 @@ export default class CoreFabricators { name: args.name, avatar_template: "/letter_avatar_proxy/v3/letter/t/41988e/{size}.png", suspended_till: args.suspended_till, + can_send_private_message_to_user: + args.can_send_private_message_to_user ?? true, }); } diff --git a/plugins/chat/assets/javascripts/discourse/components/chat/direct-message-button.gjs b/plugins/chat/assets/javascripts/discourse/components/chat/direct-message-button.gjs index 79cacfd0ace..7d0905c7b62 100644 --- a/plugins/chat/assets/javascripts/discourse/components/chat/direct-message-button.gjs +++ b/plugins/chat/assets/javascripts/discourse/components/chat/direct-message-button.gjs @@ -10,7 +10,10 @@ export default class ChatDirectMessageButton extends Component { @service router; get shouldRender() { - return this.chat.userCanDirectMessage && !this.args.user.suspended; + return ( + this.chat.userCanDirectMessage && + this.args.user.can_send_private_message_to_user + ); } @action diff --git a/plugins/chat/test/javascripts/components/chat-user-card-button-test.js b/plugins/chat/test/javascripts/components/chat-user-card-button-test.js index 7318d858154..2d0290c44f1 100644 --- a/plugins/chat/test/javascripts/components/chat-user-card-button-test.js +++ b/plugins/chat/test/javascripts/components/chat-user-card-button-test.js @@ -39,13 +39,13 @@ module( .doesNotExist("it doesn’t show the chat button"); }); - test("when displayed user is suspended", async function (assert) { + test("when displayed user has disabled PMs / DMs", async function (assert) { sinon .stub(this.owner.lookup("service:chat"), "userCanDirectMessage") .value(true); this.user = new CoreFabricators(getOwner(this)).user({ - suspended_till: moment().add(1, "year").toDate(), + can_send_private_message_to_user: false, }); await render(