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

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.

diff --git a/app/assets/javascripts/discourse/app/lib/transform-post.js b/app/assets/javascripts/discourse/app/lib/transform-post.js
index 9c39e41..a083d8f 100644
--- a/app/assets/javascripts/discourse/app/lib/transform-post.js
+++ b/app/assets/javascripts/discourse/app/lib/transform-post.js
@@ -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,
diff --git a/app/assets/javascripts/discourse/app/widgets/poster-name.js b/app/assets/javascripts/discourse/app/widgets/poster-name.js
index d0680fb..f587a19 100644
--- a/app/assets/javascripts/discourse/app/widgets/poster-name.js
+++ b/app/assets/javascripts/discourse/app/widgets/poster-name.js
@@ -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
+        })
       );
     }
 
diff --git a/app/serializers/post_serializer.rb b/app/serializers/post_serializer.rb
index 35a50a5..873db6d 100644
--- a/app/serializers/post_serializer.rb
+++ b/app/serializers/post_serializer.rb
@@ -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

GitHub sha: 9162cd8f

1 Like

This commit appears in #9946 which was approved by jjaffeux. It was merged by riking.