Documentation for JIRA 4.4. Documentation for other versions of JIRA is available too.

This page describes a minor JIRA modification which redirects users to an arbitrary page after creating issues (and potentially other operations). It is mainly of interest to JIRA Professional and Standard users.

Scenario

When JIRA is used in a public environment, it is often useful for customers to be able to raise issues directly, but not see other customers' issues.

You can also grant the Reporter (and your company groups) the Browse Issue permission. Customers can then view issues they have raised.

In JIRA Professional and Standard, Reporter isn't available, and permissions can only be granted/denied per group. We want the Create Issue permission granted to everyone, but Browse Projects denied:

Users will see a permission error after creating an issue - not very customer-friendly!

Redirecting to a custom page.

What we want is the ability to redirect the user to a nice "Thanks for raising an issue" page. We might want to direct to a different page depending on which groups the user is in. This can be done as follows:

Modify actions.xml

If you are using JIRA Standalone distribution, open atlassian-jira/WEB-INF/classes/actions.xml. If you are deploying JIRA as a webapp and have the WAR/Webapp distribution, first copy webapp/WEB-INF/classes/actions.xml to edit-webapp/WEB-INF/classes and edit actions.xml there.

Locate the section:

<action name="issue.ViewIssue" alias="ViewIssue">
<view name="success">/secure/views/issue/viewissue.jsp</view>
<view name="rss">/secure/views/issue/viewissue-rss.jsp</view>
<view name="issuenotfound">/secure/views/issuenotfound.jsp</view>
<view name="permissionviolation">/secure/views/permissionviolation.jsp</view>

<command name="moveIssueLink" alias="MoveIssueLink">
<view name="error">/secure/views/issue/viewissue.jsp</view>
</command>
</action>

Modify the permissionviolation page to /redirectusers.jsp:

<view name="permissionviolation">/redirectusers.jsp</view>

Create a redirect JSP

Now create atlassian-jira/redirectusers.jsp (Standalone) or _edit-webapp/_redirectusers.jsp (WAR/Webapp), containing something like this:

<%@ page import="com.opensymphony.user.User"%>
<%
User user = com.opensymphony.user.UserManager.getInstance().getUser(request.getRemoteUser());
if (user.inGroup("customerA-users")) {
response.sendRedirect("http://localhost/thankyou.jsp?user="+user);
} else {
response.sendReirect("http://localhost/thankyou.jsp");
}
%>

Your logic (group(s) to check for and redirect URLs will be different. If you don't want to create a custom page, you can redirect to request.getContextPath()+"/secure/Dashboard.jspa"

Deploy

If you are running JIRA Standalone, simply restart JIRA. If you are using the WAR/Webapp edition, run build.bat or build.sh to regenerate the .war file, and redeploy this in your app server.

  • No labels