Skip to end of metadata
Go to start of metadata

Name

SU for JIRA

Author(s)

Homepage

this page

Price

Commercial

CompatibilityJIRA 5 or newer

Marketplace

SU for JIRA

IssueTracking

JIRA

 

 

Dual Marketplace/Vendor licensing

Dual licensing means SU for JIRA can be:
a) Licensed with Marketplace license
b) Licensed with Vendor licenses

Dual licensing does not mean SU Vendor licenses are compatible with marketplace, can be installed in marketplace or otherwise used anywhere except the Vendor license screen, as they are by definition Vendor licenses.

For users wanting to switch to Marketplace licensing, when renewing maintenance, a 50% discount for their specific license tier will be given. This discount is done through a single use promotion code.  At this time transfer 'mid-year' is not being offered.

What is SU?

As a JIRA administrator you get users saying 'I cant do xyz', or you have conversations like 'you should see xyz' and the phone says 'no I cant'. You need to be your user to ensure clarity of instructions, and to spot/resolve other kinds of problems. Without giving passwords away, how do you do that? Well, you use this plugin. This plugin enables system administrators to become another user (to 'su' in Linux speak), enable setup, testing etc

Installation

  1. You can install this plugin via the universal plugin manager!

License install

The Plugins 'configure' link lets you request an EVAL license. Follow the screenshots listed on the plugin page

1.5.x Dual Licensing

Versions above 1.5.x support dual licensing.  This means that:

  1. Marketplace licenses (obtained via the Marketplace) can be installed directly 
  2. Vendor licenses (obtained from The Plugin People or via the automated checkout process) can be installed via the Configure link (above).  The license entry textbox is lower down, scroll down to locate.

Keyboard Shortcut

@since JSU 1.5.4

A global keyboard shortcut is available for SU, to see available shortcuts press ?, to trigger the SU prompt, press the combination g ^ (the ^ is shift 6!), then you will get:

User PromptUser SelectionReady to Submit

Controlling Access

@since JSU 1.5.5

(info) Only system admins can configure who can SU, anyone with SU capability cannot SU to a user with system admin capability!

(info) The SU keyboard shortcut will only be visible for people who have the SU capability

(info) Appropriateness of SU is validated at the point of SU, so SU links will be shown for System admins etc.

The default behaviour is that System admins and JIRA admins are able to SU, access may also be granted to nominated groups (note: probably not a good idea to add jira-users into this!):

Default AccessWith Delegated Group Access

SU-Exit

The SU Exit for JIRA SU is accessed via the toolbar, as shown below:

Manual Tweak required (Prior to V 1.4.4)

  1. Modify the file /atlassian-jira/secure/admin/user/views/userbrowser.jsp to get a UI 'SU' link. Find the following (starting around line 182 in JIRA 5.2), the bold section is added to make the SU link visible.

    <td data-cell-type="operations">
    <ul class="operations-list">
    ..

    <li><a id="su_link_<webwork:property value='name'/>" href="<ww:url page='JiraSU.jspa'><ww:param name="'name'" value='name' /></ww:url>">SU</A></li>
    <li><a id="projectroles_link_<ww:property value="name"/>" href="<ww:url page="ViewUserProjectRoles!default.jspa"><ww:param name="'name'" value="name" /><ww:param name="'returnUrl'" value="'UserBrowser.jspa'" /></ww:url>"><ww:text name="'common.words.project.roles'"/></a></li>
    ...
    </ul>
    </td>

Pre-modified files:

For the time challenged, assuming no other customizations, copy the appropriate file to /atlassian-jira/secure/admin/user/views/userbrowser.jsp

The manual approach

Jira 3.x - 4.1.x Add the following beneath it:

   | <a id="su_link_<webwork:property value="name"/>" href="<webwork:url page="JiraSU.jspa"><webwork:param name="'name'" value="name" /></webwork:url>">SU</A>

Jira 4.2

   | <a id="su_link_<webwork:property value='name'/>" href="<ww:url page='JiraSU.jspa'><ww:param name="'name'" value='name' /></ww:url>">SU</A>

Jira 4.4+ - 6.0

   <li><a id="su_link_<webwork:property value='name'/>" href="<ww:url page='JiraSU.jspa'><ww:param name="'name'" value='name' /></ww:url>">SU</A></li>

Usage

Once installed, as a system administrator, go to the User Browser, you will find a SU link in the Operations column. Clicking SU will reset who you are to the given user, and return you to the Dashboard.

Alternate usage (no install needed)

You can also invoke the SU via the following javascript, contributed by ~eis:

javascript:if(window.location.hostname.search(/jira.+/)==-1){alert(%22Jira%20SU:%20URL%20doesn't%20point%20to%20a%20Jira%20system!%22);}else{void(uid=prompt('Jira%20SU%20('+window.location.hostname+')',''));if(uid){window.location.href=%22https://%22+window.location.hostname+%22/secure/admin/user/JiraSU.jspa?name=%22+uid.toLowerCase();};};

(info) If your Jira isn't deployed to / you will need to update the url with the prefix:

/PREFIX/secure/admin/user/JiraSU.jspa?name=%22+uid.toLowerCase();};};

Version History

TODO

reimplement auditing

1.3.x

?

1.3

Extend to allow 'exit' back to existing system admin user

1.2

Auto redirects to Dashboard on successful SU

1.1

bugfix, make work with /jira type context deployments, required interim 'click here' page to get to the Dashboard, couldn't figure out how to redirect straight there.

1.0

Initial release

Open Issues

None yet.

36 Comments

  1. Unknown User (akraver)

    On this page https://studio.plugins.atlassian.com/wiki/display/JSU/JIRA+Switch+User+Plugin

    Your instructions, under installation, indicate that we should
    "Modify the file /secure/admin/user/views/userbrowser.jsp to get a UI 'SU' link. Find the following: "

    But the "find the following" shows an empty scroll box.

    Where in the userbrowser.jsp file should we add the code to make these changes?

    Basically I'm asking where does this line of code go in the userbroswer.jsp file?
    <a id="su_link_<webwork:property value="name"/>" href="<webwork:url page="JiraSU.jspa"><webwork:param name="'name'" value="name" /></webwork:url>">SU</A>

    Thanks!
    Amber

    akraver@stanford.edu

    1. if you haven't already found out...it appears to only be a problem when displayed in IE, it display ok in Safari (and I am assuming that it displays properly in firefox as well).

  2. Unknown User (rob.oaks@unirisx.com)

    Extending, such that logout returns to previous user context, would be tremendously helpful. Any ETA on that feature?

    Thanks Andy (smile)

    1. Yea, always on the cards, if someone really wants this, Im for hire (smile)

  3. Unknown User (almeck)

    I just installed (via the UPM) SU 1.2.2 on Jira 4.3. Looks like the install worked, but upon visiting

    https://studio.plugins.atlassian.com/...

    I see that apparently I must modify userbrowser.jsp (in order for the SU link to appear). However, you only show lines to be added for 3.x thru 4.2 (which use webwork). I believe I've found where to add a new line in 4.3, but it no longer uses webwork. So, it seems that a line to be added for 4.3 (not using webwork) is what I/we need to get SU running on 4.3. Yes? If so, when might we see the new code?

    OK, NEVER MIND THE ABOVE.  I just figured out that, although the line to find in userbrowser.jsp shows e.g., "webwork:...", it can also be written as "ww:...", which is, indeed, the way it appears  in 4.3's version of userbrowser.jsp (which fooled me into thinking that webwork was no longer in use, my bad).  I inserted the lline for 4.2 above and all worked just fine in 4.3.

    Thanks, an invaluable plugin.

  4. Unknown User (tracetracker)

    Thank you for this. Very handy!

    A feature to allow to "log out" and get back to my own user would be nice. ;-)

  5. Unknown User (takai2)

    I can't get it to work with Jira 4.3.4. I get this after clicking on 'SU':

    HTTP Status 404 - Could not execute action \[JiraSU\]:
    Action 'JiraSU' not found or could not be initialized a class with that name could not be found.
    

    Is it me being terribly inapt - or does somebody else have the same problem?

    I added the line to userbrowser.jsp as given above (4.2) and the jar. Verified the jar not being corrupt.

  6. Hi,

    Running Jira 4.2.4.and SU plugin 1.2.2.

    Installed according the documented steps. The SU link appears in user browser.

    But, when hitting SU on a particulair user we get rerouted to the dashboard as the same user. So, no user switch took place!

    Where to look for a solution?

  7. Unknown User (jnovak)

    The installation instructions for this plugin need to be updated for JIRA 4.3.

    The plugin is no longer installed in WEB-INF/lib. Instead, it needs to go in your $jira.home/plugins/installed-plugins directory.

    1. Unknown User (takai2)

      Yep, that works. Thanks.

  8. Unknown User (lmolenaar)

    Plugin works, many thanks for sharing.

    FYI: The configure link does not work though (/admin/users/configuresu.action) seen when selecting the plugin after installation (next to the enable/disable button)

    1. I found the same problem.

      JIRA SU v1.2.2 running on JIRA v4.4.4

      > HTTP Status 404 - /admin/users/configuresu.action

    2. Unknown User (rwong)

      Same here. JIRA 4.4.5, JIRA SU v1.2.2. The config link /admin/users/configuresu.action resulted in 404.

  9. Hi Andy,

    Are there any thoughts to upgrade this plugin to a JIRA 5.0 compatible version?
    The JIRA 5.0 Beta 1 is already release and can be used for testing the upgraded plugin...

  10. Quick and Dirty Greasmonkey script (also works in Tampermonkey on Chrome)

    // ==UserScript==
    // @name       Jira SU Script
    // @namespace  http://harman.tv/scripts
    // @version    0.1
    // @description  Add SU link to Jira instances
    // @include    http://*jira*/*
    // @include    http://*tracker*/*
    // ==/UserScript==
    
    
    //--- Note that content search is case-sensitive.
    // parseUri 1.2.2
    // (c) Steven Levithan <stevenlevithan.com>
    // MIT License
    
    function parseUri (str) {
     var o   = parseUri.options,
     m   = o.parser[o.strictMode ? "strict" : "loose"].exec(str),
     uri = {},
     i   = 14;
    
     while (i--) uri[o.key[i]] = m[i] || "";
    
     uri[o.q.name] = {};
     uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) {
     if ($1) uri[o.q.name][$1] = $2;
     });
    
     return uri;
    };
    
    parseUri.options = {
     strictMode: false,
     key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],
     q:   {
     name:   "queryKey",
     parser: /(?:^|&)([^&=]*)=?([^&]*)/g
     },
     parser: {
     strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,
     loose:  /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/
     }
    };
    
    
    var links = document.querySelectorAll ("a[href*='ViewUser.jspa?name=']");
    
    for (var J = 0;  J < links.length; J++) { 
        var thisLink            = links[J];
        var newElement          = document.createElement ("p");
        var newURL              = parseUri(links[J]).queryKey.name;
        newURL                  = window.location.hostname+ "/secure/admin/user/JiraSU.jspa?name=" + newURL;
        newElement.innerHTML    = '&nbsp;&nbsp;<a href="' + newURL + '" target="_blank">JIRA SU</a>';
    
        InsertNodeAfter (newElement, thisLink);
    } 
    
    function InsertNodeAfter (newElement, targetElement) {
        var parent  = targetElement.parentNode;
        if (parent.lastChild == targetElement)
            parent.appendChild  (newElement);
        else
            parent.insertBefore (newElement, targetElement.nextSibling);
    }
    
  11. Unknown User (daveschrader)

    Just adding to the repectful request for some JIRA V5 compatibility...? This plugin in great and I don't know how I would admin without it. Thanks, Dave

    1. Unknown User (raffael)

      I'd love to see this for JIRA 5 too! It's without a question one of the most useful JIRA plugins out there. Actually, the lack of this plugin is what's keeping us from upgrading to JIRA 5 at the moment.

  12. OK, I hear you (and I need it too!) I'll be revamping this and the other more useful/widely used plugins soon.

    1. Unknown User (raffael)

      That's great news! Maybe you should at least have a way to send you donations since your great plugins are for free ;)

      1. Free plugins are fun to write but time consuming to maintain, if they are worth maintaining, they're worth buying (smile)

        1. Unknown User (raffael)

          Maybe that came across wrong. When I wrote that, it was still free. But I have no problem with it being commercial at all, it's well worth it. Thanks for updating the plugin so fast!

          1 question though: For how long does the license work? A year? Sorry if it's written somewhere but I couldn't find it on http://www.e-junkie.com/javahollic

          1. No, its all good. See Licensing, hopefully that answers all your questions! The info on the shop is a little light, I need to link back here, thanks for the nudge.

            1. Unknown User (raffael)

              Thanks! One last question: At the moment we have an unlimited user license which runs out in a couple of months. Since we only have maybe 200-250 users, we'll then switch to the 500 user license because anything else wouldn't make any sense in our situation with the new Jira licensing model and all.

              Does that mean that we'll have to buy a 10'000+ SU Plugin license for the moment (old "Unlimited" license = new "10'000+" license?) and then switch to your 500 user license as soon as we switch the Jira license? Just to be sure we buy the right license!

              Thanks again; great support!

              1. Hi Raffael, no, you don't, the unlimited thing is not relevant, its just seats, so 500user jira = 500 user JSU.

                1. Unknown User (raffael)

                  Hey Andy, thanks! It's all clear now. Just got a bit confused by the "You DO need to buy the same JIRA SU license size as your Jira." part in the licensing details.

    2. Unknown User (daveschrader)

      Cheers for the quick reply Andy :)

  13. I've just added a Cookie based SU-exit function that seems to be working for me with JIRA 5 (and actually works for multiple depths of SU if you really needed it). Plugin Exchange will get this in a day or two. After that, CONF SU.

    1. Unknown User (rwong)

      No love for JIRA 4.X? :)

      1. Hi Royce, I made the 5.0 the version thats licensed. Its quite possible the plug will work on 4.x I just havent tried. Download the jar, get an eval? If it works as expected Ill mark the plugin 4.4 compat.

        K?

        1. Unknown User (rwong)

          Thank you! You are the best. (thumbs up)

          1. OK,Ive looked, it wont work for at least two reasons, no AO support in JIRA 4.4, and different user lookup stuff. Not going to happen I'm afraid.

            1. Maybe remove the screenshots from 4.x/3.x?

  14. 1.3.2 with SU-exit for JIRA 5+ is now released on the Plugin Exchange.

  15. Andy,

    I notice in the documentation: "Once installed, as a system administrator, go to the User Browser, you will find a SU link in the Operations column. Clicking SU will reset who you are to the given user, and return you to the Dashboard."  I also notice that this feature is available to anyone with "project administrator" privileges.  Is that the expected behavior?  

    Thanks,

    Sean

    1. Hi Sean,
      If by 'project administrator' you mean the JIRA Permission 'JIRA Administrators' then yes, people who need to SU are members of the default group 'jira-administrators', its not project specific and does enables access to many other features in JIRA administration.

      In a nutshell, if you get Administer JIRA you can SU.

      Prior to the JIRA 5 release there was an auditing feature that captured who SU'd to whom, that was only flushable by jira-system-administrators. My intent is to bring that back.

      I'll update the docs to reflect.

  16. If your JIRA is installed in / (as per default) and does not have https then the following URL hack will work better:

    javascript:void(uid=prompt('Jira%20SU%20('+window.location.hostname+')',''));if(uid){window.location.href=%22http://%22+window.location.hostname+%22/secure/admin/user/JiraSU.jspa?name=%22+uid.toLowerCase();};