FIX: Only render group card if user title is from group (#9946)

This was failing when a user with a primary_group chose to display a title coming from a badge.
This commit is contained in:
Kane York 2020-06-01 11:44:41 -07:00 committed by GitHub
parent 09dc5eb5ea
commit 9162cd8f3d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 18 additions and 3 deletions

View File

@ -47,6 +47,7 @@ export function transformBasicPost(post) {
new_user: post.trust_level === 0,
name: post.name,
user_title: post.user_title,
title_is_group: post.title_is_group,
created_at: post.created_at,
updated_at: post.updated_at,
canDelete: post.can_delete,

View File

@ -18,7 +18,7 @@ createWidget("poster-name-title", {
html(attrs) {
let titleContents = attrs.title;
if (attrs.primaryGroupName) {
if (attrs.primaryGroupName && attrs.titleIsGroup) {
const href = Discourse.getURL(`/g/${attrs.primaryGroupName}`);
titleContents = h(
"a.user-group",
@ -126,10 +126,15 @@ export default createWidget("poster-name", {
);
}
const title = attrs.user_title;
const title = attrs.user_title,
titleIsGroup = attrs.title_is_group;
if (title && title.length) {
contents.push(
this.attach("poster-name-title", { title, primaryGroupName })
this.attach("poster-name-title", {
title,
primaryGroupName,
titleIsGroup
})
);
}

View File

@ -47,6 +47,7 @@ class PostSerializer < BasicPostSerializer
:link_counts,
:read,
:user_title,
:title_is_group,
:reply_to_user,
:bookmarked,
:bookmark_reminder_at,
@ -212,6 +213,14 @@ class PostSerializer < BasicPostSerializer
object&.user&.title
end
def title_is_group
object&.user&.title == object.user&.primary_group&.title
end
def include_title_is_group?
object&.user&.title.present?
end
def trust_level
object&.user&.trust_level
end