# Feature OP-13737 - Update strings for user role/status line in share work package modal

Project: OpenProject
Status: closed
URL: https://community.openproject.org/work_packages/OP-13737

## Planning

| Attribute | Value |
| --- | --- |
| Date |  |
| Priority | High |
| Target versions | 13.1.0 |
| Sprint | 13.1.0 |
| Backlog bucket |  |
| Votes |  |
| List |  |
| Roadmap |  |
| Relevance |  |

## OPEN POINTS / FEEDBACK

_No work packages_

## Features and Chunks

_No work packages_

## Bugs and other work packages

_No work packages_

## Technical Details

| Attribute | Value |
| --- | --- |
| Module |  |
| Feature Flag |  |
| Requires doc change | No |
| Enterprise plan |  |

## Details

| Attribute | Value |
| --- | --- |
| Pull preview |  |
| Mockups |  |
| Found in mobile app version |  |
| Follow-up feedback e-mail |  |
| Accessibility | No |

## People

| Attribute | Value |
| --- | --- |
| Assignee |  |
| Accountable |  |
| Product manager |  |
| Developers |  |
| Designer |  |
| Ordered by |  |
| Signed off by |  |
| Interest by |  |

## Estimates and progress

| Attribute | Value |
| --- | --- |
| PD (min) |  |
| PD (max) |  |
| Work |  |
| Labor costs |  |

## Description

### Context

After implementing the share work packages modal, we've noticed that certain role combinations (project member, member of group that's a project member, member of group with whom a work package is shared) lead to confusing role descriptions. Like so:

<img class="op-uc-image op-uc-image_inline" src="/api/v3/attachments/79914/content">

The idea here is to come up with alternative strings that give only relevant information.

The goal is essentially to hint to users that certain users might have *different* privileges than the ones granted via the shared modal.

The original specifications will be upgraded once we're happy with the alternative.

### Proposition

<figure class="table op-uc-figure_align-center op-uc-figure"><table class="op-uc-table">
<thead class="op-uc-table--head"><tr class="op-uc-table--row">
<th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">Case</p></th>
<th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">Previous</p></th>
<th class="op-uc-table--cell op-uc-table--cell_head" style="background-color:hsl(0, 0%, 90%);"><p class="op-uc-p"><s>New</s></p></th>
<th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">New additional</p></th>
</tr></thead>
<tbody>
<tr class="op-uc-table--row">
<td class="op-uc-table--cell"><p class="op-uc-p"><strong>User is not a member of the parent project</strong></p></td>
<td class="op-uc-table--cell"><p class="op-uc-p">Not project member</p></td>
<td class="op-uc-table--cell" style="background-color:hsl(0, 0%, 90%);"><p class="op-uc-p"><s>Not a project member</s></p></td>
<td class="op-uc-table--cell" style="background-color:#FAFAD2;"><p class="op-uc-p">Not a project member</p></td>
</tr>
<tr class="op-uc-table--row">
<td class="op-uc-table--cell"><p class="op-uc-p"><strong>An invite was sent, but the user has not accepted it</strong></p></td>
<td class="op-uc-table--cell"><p class="op-uc-p">Pending invitation. <a class="op-uc-link" href="https://community.openproject.org/#">Resend invite.</a></p></td>
<td class="op-uc-table--cell" style="background-color:hsl(0, 0%, 90%);"><p class="op-uc-p"><s>Invite sent. </s><a class="op-uc-link" href="https://community.openproject.org/#"><s>Resend</s></a><s>.</s></p></td>
<td class="op-uc-table--cell" style="background-color:#FAFAD2;"><p class="op-uc-p">Invite sent. <a class="op-uc-link" href="https://community.openproject.org/#">Resend</a>.</p></td>
</tr>
<tr class="op-uc-table--row">
<td class="op-uc-table--cell"><p class="op-uc-p"><strong>User is a group that is a member of the current project</strong></p></td>
<td class="op-uc-table--cell"><p class="op-uc-p">Project group</p></td>
<td class="op-uc-table--cell" style="background-color:hsl(0, 0%, 90%);"><p class="op-uc-p"><s>Group (shared with all members)</s></p></td>
<td class="op-uc-table--cell" style="background-color:#FAFAD2;"><p class="op-uc-p">Group members might have additional privileges (as project members)</p></td>
</tr>
<tr class="op-uc-table--row">
<td class="op-uc-table--cell"><p class="op-uc-p"><strong>User is a group that is not a member of the current project</strong></p></td>
<td class="op-uc-table--cell"><p class="op-uc-p">-</p></td>
<td class="op-uc-table--cell" style="background-color:hsl(0, 0%, 90%);"><p class="op-uc-p"><s>Group (shared with all members)</s></p></td>
<td class="op-uc-table--cell" style="background-color:#FAFAD2;"><p class="op-uc-p">Group (shared with all members)</p></td>
</tr>
<tr class="op-uc-table--row">
<td class="op-uc-table--cell"><p class="op-uc-p"><strong>User is already a member of the project</strong></p></td>
<td class="op-uc-table--cell"><p class="op-uc-p">Project member: {Role}</p></td>
<td class="op-uc-table--cell" style="background-color:hsl(0, 0%, 90%);"><p class="op-uc-p"><s>Also a project member (role: </s><i><s>{role}</s></i><s>)</s></p></td>
<td class="op-uc-table--cell" style="background-color:#FAFAD2;"><p class="op-uc-p">Might have additional privileges (as project member)</p></td>
</tr>
<tr class="op-uc-table--row">
<td class="op-uc-table--cell"><p class="op-uc-p"><strong>User is a member of a group that is shared with this work package</strong></p></td>
<td class="op-uc-table--cell"><p class="op-uc-p">Part of shared group.</p></td>
<td class="op-uc-table--cell" style="background-color:hsl(0, 0%, 90%);"><p class="op-uc-p"><s>Also a member of group: </s><i><s>{group name}</s></i></p></td>
<td class="op-uc-table--cell" style="background-color:#FAFAD2;"><p class="op-uc-p">Might have additional privileges (as group member)</p></td>
</tr>
<tr class="op-uc-table--row">
<td class="op-uc-table--cell"><p class="op-uc-p"><strong>User is a member of a group that is a project member</strong></p></td>
<td class="op-uc-table--cell"><p class="op-uc-p">Project group. Project member: {Role}</p></td>
<td class="op-uc-table--cell" style="background-color:hsl(0, 0%, 90%);"><p class="op-uc-p"><s>Also a project member (role: </s><i><s>{role}</s></i><s>)</s></p></td>
<td class="op-uc-table--cell" style="background-color:#FAFAD2;"><p class="op-uc-p">Might have additional privileges (as project member)</p></td>
</tr>
<tr class="op-uc-table--row">
<td class="op-uc-table--cell"><p class="op-uc-p"><strong>User is a member of a group *and* is a project member</strong></p></td>
<td class="op-uc-table--cell"><p class="op-uc-p">Part of a shared group. Project member {role}.</p></td>
<td class="op-uc-table--cell" style="background-color:hsl(0, 0%, 90%);"><p class="op-uc-p"><s>Also a project member (role: </s><i><s>{role}</s></i><s>)) and member of group {group name}</s></p></td>
<td class="op-uc-table--cell" style="background-color:#FAFAD2;"><p class="op-uc-p">Might have additional privileges (as project member)</p></td>
</tr>
<tr class="op-uc-table--row">
<td class="op-uc-table--cell"><p class="op-uc-p"><strong>User is a member of a group that is project member *and* a member of a group that is invited</strong></p></td>
<td class="op-uc-table--cell"><p class="op-uc-p">Project group. Part of a shared group. </p></td>
<td class="op-uc-table--cell" style="background-color:hsl(0, 0%, 90%);"><p class="op-uc-p"><s>Also a member of groups</s><i><s> {group 1 name}</s></i><s>, </s><i><s>{group 2 name}</s></i></p></td>
<td class="op-uc-table--cell" style="background-color:#FAFAD2;"><p class="op-uc-p">Might have additional privileges (as project or group member)</p></td>
</tr>
<tr class="op-uc-table--row">
<td class="op-uc-table--cell"><p class="op-uc-p"><strong>Locked user</strong></p></td>
<td class="op-uc-table--cell"><p class="op-uc-p">Locked user</p></td>
<td class="op-uc-table--cell" style="background-color:hsl(0, 0%, 90%);"><p class="op-uc-p"></p></td>
<td class="op-uc-table--cell" style="background-color:#FAFAD2;"><p class="op-uc-p">Locked user</p></td>
</tr>
<tr class="op-uc-table--row">
<td class="op-uc-table--cell"><p class="op-uc-p">Anything else?...</p></td>
<td class="op-uc-table--cell"><p class="op-uc-p"></p></td>
<td class="op-uc-table--cell" style="background-color:hsl(0, 0%, 90%);"><p class="op-uc-p"></p></td>
<td class="op-uc-table--cell" style="background-color:#FAFAD2;"><p class="op-uc-p"></p></td>
</tr>
</tbody>
</table></figure>

### 

### Open questions:

  - ~~Should we really include "role:" before printing the role?~~
  - ~~Should we mention the role or the group name in the line?~~

### Accepted solution

**Case:**

1.  Principal is a **Group:**
    1.  which is a **project member**: "Group members might have additional privileges (as project members)"
    2.  which is **not a project member**: "Group (shared with all members)"
2.  Principal is a **User:**
    1.  **locked**: "Locked user"
    2.  **pending invitation**: "Invite send. [Resend](https://community.openproject.org/#)" (If the link is clicked, it changes to "Invite has been resent")
    3.  which is a **project member**: "Might have additional privileges (as project member)"
    4.  which is **not a project member**: "Not a project member"
3.  Principal is a **User** which is **also member of a Group:**
    1.  **only the user is shared with**:
        1.  only the **user is a member** of the project: "Might have additional privileges (as project member)"
        2.  the **group is member** of the project: "Might have additional privileges (as project of group member)"
        3.  **nobody** is member of the project: "Not a project member"
    2.  **the user and the group are both** shared with
        1.  only the **user is a member** of the project: "Might have additional privileges (as project or group member)"
        2.  the **group is member** of the project: "Might have additional privileges (as project of group member)"
        3.  **nobody** is member of the project: "Might have additional privileges (as group member)"
