Users who are given Write or Change access to a Project can modify all issues in the project. However, an Administrator can configure restrictions as part of a Workflow that will make an issue and/or its individual elements read-only. This can be applied to one or more specific statuses in a workflow or to all statuses in a workflow. Restrictions are applied by project and effect all members of the project unless specifically configured otherwise.
Prerequisites
- You must have "Change" access rights to the CMS project OR the Administrator role in the server.
How to Make Issues Read-only
To make all elements of an issue read-only, the Restriction field should be set to "*". In the below example, when an issue has a Status of "Closed", all of its elements will be read-only for all users in the project.
<Workflow initialStatus="New"> <Status name="New"> <NextStatuses> <NextStatus name="Closed"/> <NextStatus name="In Progress"/> </NextStatuses> </Status> <Status name="In Progress"> <NextStatuses> <NextStatus name="Closed"/> </NextStatuses> </Status> <Status name="Closed"> <NextStatuses> <NextStatus name="In Progress"/> </NextStatuses> <Restrictions> <Restriction field="*"/> </Restrictions> </Status> </Workflow>
How to Make a Specific Element(s) of Issues Read-only
To make specific elements of an issue read-only instead of all elements in a specific status, use one of the following field values.
- Name
- Type
- AssignedTo
- Status
- Description
- Iteration
- Attribute:ASID (provide the SID of the attribute)
- Attachments
- Relationship:ASID (provide the SID of the relationship)
- Notes
In the below example, the Attribute with SID "ABAN" cannot be edited if the issue has a Status of "Closed".
<Workflow initialStatus="New"> <Status name="New"> <NextStatuses> <NextStatus name="Closed"/> <NextStatus name="In Progress"/> </NextStatuses> </Status> <Status name="In Progress"> <NextStatuses> <NextStatus name="Closed"/> </NextStatuses> </Status> <Status name="Closed"> <NextStatuses> <NextStatus name="In Progress"/> </NextStatuses> <Restrictions> <Restriction field="Attribute:ABAN"/> </Restrictions> </Status> </Workflow>
Restricting edits to the following attribute types is not supported:
- External reference
- Computed
- Custom
- Identity
How to Make Exceptions for User(s)
To make an exception to a restriction, i.e., to allow a specific user or users to continue to be able to edit a field element, enter a test using the Path Query Language to define the exception. In the below example, if the logged-in user is the Assigned to user, they can make changes to the issue even if the issue has a Status of "Closed".
<Workflow initialStatus="New"> <Status name="New"> <NextStatuses> <NextStatus name="Closed"/> <NextStatus name="In Progress"/> </NextStatuses> </Status> <Status name="In Progress"> <NextStatuses> <NextStatus name="Closed"/> </NextStatuses> </Status> <Status name="Closed"> <NextStatuses> <NextStatus name="In Progress"/> </NextStatuses> <Restrictions> <Restriction field="*" test="CurrentUser = AssignedTo"/> </Restrictions> </Status> </Workflow>
Applying Restrictions to All Workflow Statuses
In the above examples, restrictions were configured for issues having a Status of "Closed". However, it is possible to configure the restrictions to apply to ALL statuses. This is done using the <All> tag placed within <Workflow> and along side all of the <Status> tags. In the below example, the ABAN Attribute, Attachments, IR Relationships, and Notes will all be read-only except if the logged-in user is the Assigned to user.
<Workflow initialStatus="New"> <Status name="New"> <NextStatuses> <NextStatus name="Closed"/> <NextStatus name="In Progress"/> </NextStatuses> </Status> <Status name="In Progress"> <NextStatuses> <NextStatus name="Closed"/> </NextStatuses> </Status> <Status name="Closed"> <NextStatuses> <NextStatus name="In Progress"/> </NextStatuses> </Status> <All> <Restrictions> <Restriction field="Attribute:ABAN" test="CurrentUser = AssignedTo"/> <Restriction field="Attachments" test="CurrentUser = AssignedTo"/> <Restriction field="Relationship:IR" test="CurrentUser = AssignedTo"/> <Restriction field="Notes" test="CurrentUser = AssignedTo"/> </Restrictions> </All> </Workflow>
Note: Currently, it is not possible to restrict the removal of an issue from a project. |