Content
View differences
Updated by Henriette Darge over 2 years ago
### 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 Should we really include "role:" before printing the role?~~ role?
* ~~Should 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)" line?
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
* ~~Should
### 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)"