Permissions for Custom Roles - Project Planning
### **Problem to solve**
Customers have permissions challenges when it comes to managing work items such as Epics, Issues, and Labels along with obtaining wiki access. The problems they are trying to solve include:
* Fine grained permissions for who can edit and view work items and related views.
* Reporter role has ability to view code. Regulated environments prefer their planning or QA team not to view code. As a result, these teams have to create a separate project which can isolate communication with the dev team.
* Using a wiki requires developer access which elevates permissions for planning teams. This forces teams to create a separate project to manage their wiki further isolating communication.
### **Proposal**
See [meta issue](https://gitlab.com/gitlab-org/gitlab/-/issues/440701 "Permissions map to a Consistent CRUD Verb Pattern") for CRUD verb patterns
* Manage: Includes Write/View/Delete
* Write: Includes View
* Delete: Includes View
<table>
<tr>
<th>Resource</th>
<th>Write</th>
<th>View</th>
<th>Delete</th>
</tr>
<tr>
<td>Work Items</td>
<td>
* Create and update work items
* Create and update boards
</td>
<td>
* View work items
* View boards
* View roadmaps
* View lists
</td>
<td>
* Delete work items
* Delete boards
</td>
</tr>
<tr>
<td>Timeboxes (iterations, milestones)</td>
<td>
* Create and update timeboxes
</td>
<td>
* View timebox reports
</td>
<td>
* Delete timeboxes (iteration cadences, milestones)
</td>
</tr>
<tr>
<td>Label Management</td>
<td>
* Add or update label
</td>
<td>
* View labels list
</td>
<td>
* Delete labels
</td>
</tr>
<tr>
<td>Value Stream Analytics</td>
<td>
* Create and update custom VSA reports
</td>
<td>
* View custom VSA reports
</td>
<td>
* Delete custom VSA reports
</td>
</tr>
<tr>
<td>Wiki</td>
<td>
* Create and update wiki pages
</td>
<td>
* View wiki pages
</td>
<td>
* Delete wiki pages
</td>
</tr>
</table>
* Work items include Epics, Issues, Tasks, OKRs.
* Work item settings include issue templates, service desk, customizable types (future) customizable statuses (future)
Default conditions with custom roles
<table>
<tr>
<th>Default Condition</th>
<th>Description</th>
</tr>
<tr>
<td>Confidential</td>
<td>
* Guest users cannot see confidential issues.
* Custom roles can see confidential issues if given access to group or project.
</td>
</tr>
<tr>
<td>Authorship</td>
<td>
* Authors and assignees can modify the title and description.
* Authors and assignees can close and reopen issues
* Authors can delete work items and comments they authored
</td>
</tr>
<tr>
<td>Labels</td>
<td>
* If you can access work items, you can see labels and assign them to items.
</td>
</tr>
<tr>
<td>Relationships</td>
<td>
* If you have a Guest role in one namespace and a custom role in another namespace, you can link (related, blocking/blocked by, parent/child) work items from one namespace to another.
</td>
</tr>
<tr>
<td>Discussions</td>
<td>
* If you can access work items, you can comment on them.
* If you can access work items, you can see internal notes.
</td>
</tr>
</table>
### **Permutation Stress Test**
* Project managers can only access project planning resources and are limited to other GitLab resources
* Project managers can manage labels at a group or project level without them being deleted
### **User Persona Modeling**
### **Dependencies**
* Labels: Creation and managing labels in the work item metadata will be limited based on label permission.
* Notifications
* TODOs
* Comments
* Merge requests
### **Evidence**
* Variations between epics, issues, and labels. ( https://gitlab.com/gitlab-org/gitlab/-/issues/404872#note_1371419965+)
* Restrict issues and epics to specific users. ( https://gitlab.com/gitlab-org/gitlab/-/issues/353129+)
* Issue Only Users ( https://gitlab.com/gitlab-org/gitlab/-/issues/21616+)
* https://gitlab.com/groups/gitlab-org/-/epics/4035#note_864494024+
* https://gitlab.com/groups/gitlab-org/-/epics/4035#note_868477404
* https://gitlab.com/groups/gitlab-org/-/epics/4035#note_1120378220
* https://gitlab.com/gitlab-org/gitlab/-/issues/391760#note_1857520804
### **Alignment Review**
* \[Plan PM\]: Product Manager
* \[Plan Designer\]: Product Designer
* \[Authorization Team\]: PM, EM, PD
### Resources
* [Figjam diagram of project planning resources](https://www.figma.com/file/nBkQ2Qgk1gHDaiIER0K634/Custom-Role-Permissions%3A-Project-Planning?type=whiteboard&node-id=45-907&t=7h7HRoebEh179IDC-0)
epic