hasPermission
Looking for the documentation on the newest versions of SIL Engine and the Simple Issue Language for Jira 8 for Server/Data Center? Click here !
Availability
This routine is available starting with SIL Engine™ 2.0.6 for Jira 5.x or SIL Engine™ 1.1.13 for Jira 4.3.x/4.4.x.
Syntax
hasPermission(permissionId, user[, issueKey])
Description
Checks if a user has the specified permission.Parameters
Parameter name | Type | Required | Description |
---|---|---|---|
permissionId | Number | Yes | Permission ID. |
user | String | Yes | Username or userkey to check the permission for. |
issueKey | String | No | Issue key. Only required for non-global permissions. |
Permissions
Category | Permissions | Description | ID |
---|---|---|---|
Global Permissions | Jira Administrators | Ability to perform most administration functions (excluding Import & Export, SMTP Configuration, etc.). | 0 |
Bulk Change | Ability to modify a collection of issues at once. For example, resolve multiple issues in one step. | 33 | |
Create Shared Objects | Ability to share dashboards and filters with other users, groups and roles. | 22 | |
Manage Group Filter Subscriptions | Ability to manage (create and delete) group filter subscriptions. | 24 | |
Jira System Administrators | Ability to perform all administration functions. There must be at least one group with this permission. | 44 | |
Jira Users | Ability to log in to Jira. They are a 'user'. Any new users created will automatically join these groups, unless those groups have Jira System Administrators or Jira Administrators permissions. | 1 | |
Browse Users | Ability to select a user or group from a popup window as well as the ability to use the 'share' issues feature. Users with this permission will also be able to see names of all users and groups in the system. | 27 | |
Project Permissions | Administer Projects | Ability to administer a project in Jira. | 23 |
Browse Projects | Ability to browse projects and the issues within them. | 10 | |
View Version Control | Ability to view Version Control commit information for issues. | 29 | |
View Read-Only Workflow | Users with this permission may view a read-only version of a workflow. | 45 | |
Assign Issues | Ability to assign issues to other people. | 13 | |
Assignable User | Users with this permission may be assigned to issues. | 17 | |
Close Issues | Ability to close issues. Often useful where your developers resolve issues, and a QA department closes them. | 18 | |
Create Issues | Ability to create issues. | 11 | |
Delete Issues | Ability to delete issues. | 16 | |
Edit Issues | Ability to edit issues. | 12 | |
Link Issues | Ability to link issues together and create linked issues. Only useful if issue linking is turned on. | 21 | |
Modify Reporter | Ability to modify the reporter when creating or editing an issue. | 30 | |
Move Issues | Ability to move issues between projects or between workflows of the same project (if applicable). Note the user can only move issues to a project he or she has the create permission for. | 25 | |
Resolve Issues | Ability to resolve and reopen issues. This includes the ability to set a fix version. | 14 | |
Schedule Issues | Ability to set or edit an issue's due date. | 28 | |
Set Issue Security | Ability to set the level of security on an issue so that only people in that security level can see the issue. | 26 | |
Manage Watchers | Ability to manage the watchers of an issue. | 32 | |
View Voters and Watchers | Ability to view the voters and watchers of an issue | 31 | |
Delete All Comments | Ability to delete all comments made on issues. | 36 | |
Delete Own Comments | Ability to delete own comments made on issues. | 37 | |
Edit All Comments | Ability to edit all comments made on issues. | 34 | |
Edit Own Comments | Ability to edit own comments made on issues. | 35 | |
Add Comments | Ability to comment on issues. | 15 | |
Delete All Attachments | Users with this permission may delete all attachments. | 38 | |
Delete Own Attachments | Users with this permission may delete own attachments. | 39 | |
Create Attachments | Users with this permission may create attachments. | 19 | |
Work On Issues | Ability to log work done against an issue. Only useful if Time Tracking is turned on. | 20 | |
Delete All Worklogs | Ability to delete all worklogs made on issues. | 43 | |
Delete Own Worklogs | Ability to delete own worklogs made on issues. | 42 | |
Edit All Worklogs | Ability to edit all worklogs made on issues. | 41 | |
Edit Own Worklogs | Ability to edit own worklogs made on issues. | 40 | |
Transition Issues | Ability to transition issues. | 46 |
Return type
boolean
Returns "true" if the user has the specified permission or "false" otherwise.
Note
This routine also verifies the issue security level. If the specified user cannot see the issue because his security level does not allow it, the routine will return "false" for the project permissions even if the user does have the specified privilege. This happens because the issue security comes first and will prohibit the user from taking actions that are otherwise allowed by the permission scheme.
The look-up is first made after the userkey, then after the username.
Example
Example 1
for(string user in usersInGroups({"QA-Testers"})){ if(hasPermission(17, user, key)){ assignee = user; return; } }
Result: The issue will be assigned to one of the testers who have the permission to be assigned issues on the current project.
Example 2
Tip
Attached to this page is permissions.incl that contains variable definitions for all the above permissions. You can upload this file to your Jira instance via the SIL Manager, include it in your scripts and then use the variables defined there to make the code easier to understand.
Using permissions.incl the above example will look like this:
include "permissions.incl"; // assuming the file is in the default programs folder for(string user in usersInGroups({"QA-Testers"})){ if(hasPermission(ASSIGNABLE_USER, user, key)){ assignee = user; return; } }
See also