Uploaded image for project: 'Jira Data Center'
  1. Jira Data Center
  2. JRASERVER-31613

Hovering over deleted user's name must indicate that user does not exist

    • 6
    • Severity 3 - Minor
    • Hide
      Atlassian Update – 06 December 2017

      Hi everyone,

      We have recently reviewed this issue and the overall interest in the problem. As the issue hasn't collect votes, watchers, comments, or support cases from many customers during its lifetime, it's very low on our priority list, and will not be fixed in the foreseeable future. That's why we've decided to resolve it as Time Out.

      Although we're aware the issue is still important to those of you who were involved in the conversations around it, we want to be clear in managing your expectations. The Jira team is focusing on issues that have broad impact and high value, reflected by the number of comments, votes, support cases, and customers interested. Please consult the Atlassian Bugfix Policy for more details.

      We understand how disappointing this decision may be, but we hope you'll appreciate our transparent approach and communication.
      Atlassian will continue to watch this issue for further updates, so please feel free to share your thoughts in the comments.
      Thank you,
      Ignat Alexeyenko
      Jira Bugmaster

      Show
      Atlassian Update – 06 December 2017 Hi everyone, We have recently reviewed this issue and the overall interest in the problem. As the issue hasn't collect votes, watchers, comments, or support cases from many customers during its lifetime, it's very low on our priority list, and will not be fixed in the foreseeable future. That's why we've decided to resolve it as Time Out . Although we're aware the issue is still important to those of you who were involved in the conversations around it, we want to be clear in managing your expectations. The Jira team is focusing on issues that have broad impact and high value, reflected by the number of comments, votes, support cases, and customers interested. Please consult the Atlassian Bugfix Policy for more details. We understand how disappointing this decision may be, but we hope you'll appreciate our transparent approach and communication. Atlassian will continue to watch this issue for further updates, so please feel free to share your thoughts in the comments. Thank you, Ignat Alexeyenko Jira Bugmaster

      Right now, we show a popup like this

      Since the user is deleted we should not show such a popup or pop up must indicate that user is deleted.

            [JRASERVER-31613] Hovering over deleted user's name must indicate that user does not exist

            Can I infer from JRA-22817 that the desired behaviour is to not show this dialog for non-existent users at all?

            JRA-22817 is talking about the logged in user not having permissions to see user profile (in particular because the user is anonymous), so this is a different situation.

            I would think that the desired behaviour is to include a pop up but let it say "user 'foo' was deleted" or something.

            Mark Lassau (Inactive) added a comment - Can I infer from JRA-22817 that the desired behaviour is to not show this dialog for non-existent users at all? JRA-22817 is talking about the logged in user not having permissions to see user profile (in particular because the user is anonymous), so this is a different situation. I would think that the desired behaviour is to include a pop up but let it say "user 'foo' was deleted" or something.

            crf added a comment -

            Shortest path fix I see is changing userhover.js to restrict the hover to only happening when the rel attribute is supplied. It looks like this was probably a side-effect of JRADEV-5313, as this used to select on "a.user-hover", so it would not previously have applied to the <span>s.

            diff --git a/jira-components/jira-webapp/src/main/webapp/includes/jira/dialog/userhover.js b/jira-components/jira-webapp/src/main/webapp/includes/jira/dialog/userhover.js
            index 4b6deb9..e781e98 100644
            --- a/jira-components/jira-webapp/src/main/webapp/includes/jira/dialog/userhover.js
            +++ b/jira-components/jira-webapp/src/main/webapp/includes/jira/dialog/userhover.js
            @@ -7,9 +7,9 @@
              *      dialog popups.
              *
              * @param {HTMLElement} context (optional)
            - *   -- The scope in which to look for "a.user-hover" elements
            + *   -- The scope in which to look for ".user-hover" elements
              */
            -jQuery(document).delegate(".user-hover", {
            +jQuery(document).delegate(".user-hover[rel]", {
                 "mousemove": function() {
                     JIRA.userhover.show(this);
                 },
            

            crf added a comment - Shortest path fix I see is changing userhover.js to restrict the hover to only happening when the rel attribute is supplied. It looks like this was probably a side-effect of JRADEV-5313, as this used to select on "a.user-hover", so it would not previously have applied to the <span>s. diff --git a/jira-components/jira-webapp/src/main/webapp/includes/jira/dialog/userhover.js b/jira-components/jira-webapp/src/main/webapp/includes/jira/dialog/userhover.js index 4b6deb9..e781e98 100644 --- a/jira-components/jira-webapp/src/main/webapp/includes/jira/dialog/userhover.js +++ b/jira-components/jira-webapp/src/main/webapp/includes/jira/dialog/userhover.js @@ -7,9 +7,9 @@ * dialog popups. * * @param {HTMLElement} context (optional) - * -- The scope in which to look for "a.user-hover" elements + * -- The scope in which to look for ".user-hover" elements */ -jQuery(document).delegate( ".user-hover" , { +jQuery(document).delegate( ".user-hover[rel]" , { "mousemove" : function () { JIRA.userhover.show( this ); },

            crf added a comment - - edited
            • The javascript tries to pick up the "rel" attribute from the element that specifies the "user-hover" class.
            • The trouble starts in actionProfileLink.vm, which has three cases:
              1. We have a user: creates an anchor with class="user-hover user-avatar" and rel="username" with the escaped username as the content
              2. We have a username, but no user (user was deleted): creates a span with class="user-hover user-avatar" and no rel attribute with the escaped username as the content
              3. We have nothing (anonymous activity): creates a span with class="user-hover user-avatar" and no rel attribute with the translation for Anonymous as the content
            • userhover.js always expects to find a rel attribute set for anything with the user-hover class. It appends the URL-escaped form of the username as a parameter to ViewUserHover.jspa
            • viewuserhover.jsp is just working with what it was given, which is the literal string "null" as the username

            What I think should happen:

            1. Either the deleted user (Case 2) should not have the user-hover class, or rel should be set to the username.
            2. Either the anonymous user (Case 3) should not have the user-hover class, or actionProfileLink and userhover.js need to sort out how to communicate this so that ViewUserHover.jspa is provided with a blank username instead of the literal string "null". Either setting rel to an empty value or having userhover.js tolerate a missing rel attribute would work.

            crf added a comment - - edited The javascript tries to pick up the "rel" attribute from the element that specifies the "user-hover" class. The trouble starts in actionProfileLink.vm, which has three cases: We have a user: creates an anchor with class="user-hover user-avatar" and rel="username" with the escaped username as the content We have a username, but no user (user was deleted): creates a span with class="user-hover user-avatar" and no rel attribute with the escaped username as the content We have nothing (anonymous activity): creates a span with class="user-hover user-avatar" and no rel attribute with the translation for Anonymous as the content userhover.js always expects to find a rel attribute set for anything with the user-hover class. It appends the URL-escaped form of the username as a parameter to ViewUserHover.jspa viewuserhover.jsp is just working with what it was given, which is the literal string "null" as the username What I think should happen: Either the deleted user (Case 2) should not have the user-hover class, or rel should be set to the username. Either the anonymous user (Case 3) should not have the user-hover class, or actionProfileLink and userhover.js need to sort out how to communicate this so that ViewUserHover.jspa is provided with a blank username instead of the literal string "null". Either setting rel to an empty value or having userhover.js tolerate a missing rel attribute would work.

            Daz added a comment -

            This would be a combination of:

            • Javascript functionality for the userhover
            • Either:
              • A REST endpoint for retrieving a user's details, or
              • Something being output to the page on pageload with the user's details prepopulated in it.

            In any case, the fix will be a combination of updating the javascript to recognise null/deleted users and output a special message.

            Daz added a comment - This would be a combination of: Javascript functionality for the userhover Either: A REST endpoint for retrieving a user's details, or Something being output to the page on pageload with the user's details prepopulated in it. In any case, the fix will be a combination of updating the javascript to recognise null/deleted users and output a special message.

            I would agree with what edalgliesh has suggested. mlassau thoughts?

            Panna (Inactive) added a comment - I would agree with what edalgliesh has suggested. mlassau thoughts?

            Can I infer from JRA-22817 that the desired behaviour is to not show this dialog for non-existent users at all?

            Eric Dalgliesh added a comment - Can I infer from JRA-22817 that the desired behaviour is to not show this dialog for non-existent users at all?

            Existing issue so move to JAC?

            Mark Lassau (Inactive) added a comment - Existing issue so move to JAC?

              Unassigned Unassigned
              pcherukuri Panna (Inactive)
              Affected customers:
              0 This affects my team
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: