Enabling internal user comments to be restricted by default but not the remote user
Scenario
In a profile if I have projects mapped to clients and I want their comments to default to no visibility restriction. When an employee replys I want their comment to be set to a restricted visibility level. How would I go about configuring that?
Solution
Project Mapping Setup
1. A Profile with a mailbox, such that project emails get replied to that inbox, ie separate your mail JIRA mail from internal JIRA mailboxes, this is so multiple profiles can be used, as things will get messy if you map all your internal users to one project.
In order to notify non-JIRA users, their email addresses need to be captured in a Custom Field, add an Unlimited TEXT custom field, eg 'Email participant' and refer to in Profile > Configuration > Email, as shown below:
2. Now given there is a dedicated profile for this, you could just set the Profile > Project Mapping > Default Project Mapping to be TEST, as you don't want any specific things done to remote users. If you intend to support a given user DOMAIN, you could add another Domain Mapping to Project Mapping for say .*@faraway.com, Address Match Type: Sender, with no further changes, permissions for TEST are classic:
This example just sets the global fallback so everyone internal, but everyone else for whom a mapping rule did not apply, who send email to the associated mailbox will be routed to this project:
3. Create a Project Mapping for say, TEST and set an IssueType and Priority.
Edit the Project Mappings section, select New Project Mapping:
Enter a target project key, eg TEST, and hit return to initialise the Project Mapping.
The Project Mapping has now been created (but has no Rules defined yet)
Edit the Project Mapping by selecting the pen icon:
The edit window is now shown, note that project related information is now available (versions,components etc). This information if set is applied only if Rules do not define the same fields. Set an IssueType and Priority for the project, if you are supporting remote non-JIRA users, also set a Reporter.
Hit enter/submit to SAVE this information:
Domain Mapping Rule Setup
To make all 'internal' user comments become private, a Group Mapping or Domain Mapping could be used. A Group Mapping could be set with 'jira-users' as the group, neatly identifying all internal users (or similar). If all users are within the same domain, then equally, a Domain Mapping could be used. A Domain mapping is shown here:
Re-edit the Project Mapping, Press Domain Rules on the left side, then click on a new Domain Mapping.
Imagining all internal users are from the domain @yourco.net, the following configuration can be set that matches all sender in the domain.
Press Issue on the left side and set Viewable By Role/Group to developers to have the internal user comments visibility restricted to the group developers
Save the changes
On the Project Mapping screen, scroll down to see the saved Domain Mapping Rule:
Testing
Remote NON-JIRA user
At this point, remote non-JIRA users from that domain will be able to create issues, that will be public, created under the ID of 'admin'. Next, we'll create a JEMH TestCase to prove this works.
Create a Test Case, updating the from: address to be a domain faraway, and hit Create.
Click the Run button to run the test case against the (only) profile we had defined:
This shows that an issue has been created, that the reporter is 'admin', that the remote user email address has been captured to the Email Participant custom field:
JIRA user comments.
To test this, edit the testcase, adding the issue key TEST-3 , and updating the sender to match the Domain Mapping expression used earlier:
So long as the email address relates to a registered JIRA user, has appropriate permissions in the project and is a member of the appropriate visibility group previously selected, the result should be success:
Looking at the issue, we should see:
Next Steps.
Configure the NON-JIRA IssueListener to push updates back to the remote user.