Content
View differences
Updated by Marc Alcobé about 2 years ago
**As** a user
**I want to** turn a project list public (accessible to everybody) or share it with a specific group
**so that** I can have others reuse a list to form a shared view on projects
**Acceptance criteria**
* Sharing/Public:
* A user with the global permission "Share project lists" can share a project list with other users and groups.
* Users can access the project lists that are shared with them.
* For public lists, everyone can access them (does not even require to be logged in)
* For shared lists, only users with whom the list are shared can access them.
* Sharing a list with users/groups or turning them public requires additional permissions
* Create public project lists -> Permission to turn a list public.
* Share project lists -> Permission to share lists with other users.
* **\[open\] Upon seeding a new instance, what roles are to receive the new permissions?**
* **\[open\] For existing installations, are there any roles that should automatically receive the new permissions?**
* A new global role is added to create public project lists.
* **\[open\] What permission set will the role receive? What name does that role have?**
* There is form that allows to select users and groups the project list is shared with (similar to sharing work packages).
* The same form also allows to turn a list public if the user has the necessary permission.
* List deletion:
* Public lists can be deleted by everyone having the edit permission.
* Shared lists cannot be deleted by users the list is shared with but, if a user wants to remove themself from a list that has been shared with them he can open the share modal and use the action "Remove" next to their name.
* The option to delete a list is only displayed in the "more" menu if the user has the permissions necessary to remove the list.
* Changing a public list:
* Public lists can be changed (renamed, column selection, filter selection, sort order selection) just like own lists for users having the edit permission.
* If the user lacks the edit permission, they have the same options as when changing a shared or static list.
* A message and button appears similar to own lists (see #52152)
* When saving the new list (owned by the current user then), the sharing configured from the template list is not copied over.
* Changing a shared list:
* A message and button appears similar to own lists (see #52152)
* When saving the new list (owned by the current user then), the sharing configured from the template list is not copied over.
* User deletion:
* In case the deleted user is the "owner" of lists that has been shared with other users the ownership will be transferred to the first user with sharing permissions in the shared list. If there is no such user left, the list would be removed.
* In case the deleted user is the "owner" of a public list, the ownership of that list will be transferred to an instance administrator.
* Sidebar:
* A section is added to the sidebar listing all project lists shared with me (public or shared)
**Info**: The sharing of project lists only apply to the project lists. It does not give the users access to the projects itself. So different users can see different results when clicking on shared project lists based on their individual project roles.
**Technical notes**
* Add an extra table for list visibility (join table between user and query)
* the user to that table (have a column indicating that the initial user is the owner)
* Needs having a type/role column on the table
* Add joined with users/groups to that table (use the type/role column to indicate that it is shared)
**Relevant translations**
<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">EN (<a class="op-uc-link" href="https://www.figma.com/file/YCCMdJWkrtP9YSmf49Od0i/Project-lists?type=design&node-id=1830-41294&mode=design&t=JWw5I0eRsONBc6xj-4">Figma link</a>)</p></th><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">DE (Figma link)</p></th><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">ES (<a class="op-uc-link" href="https://www.figma.com/file/YCCMdJWkrtP9YSmf49Od0i/Project-lists?type=design&node-id=1912-23079&mode=design&t=JWw5I0eRsONBc6xj-4">Figma link</a>)</p></th><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">FR (<a class="op-uc-link" href="https://www.figma.com/file/YCCMdJWkrtP9YSmf49Od0i/Project-lists?type=design&node-id=1916-15593&mode=design&t=JWw5I0eRsONBc6xj-4">Figma link</a>)</p></th></tr></thead><tbody><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Share project list</p></td><td class="op-uc-table--cell"><p class="op-uc-p"></p></td><td class="op-uc-table--cell"><p class="op-uc-p">Compartir lista de proyectos</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Partager la liste des projets</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Please note that the projects in the list might differ from one user to another depending on which projects the user has access to.</p></td><td class="op-uc-table--cell"><p class="op-uc-p"></p></td><td class="op-uc-table--cell"><p class="op-uc-p">Por favor, tenga en cuenta que la lista de proyectos puede variar para otros usuarios dependiendo a qué proyectos tienen acceso.</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Veuillez noter que les projets figurant dans la liste peuvent différer d'une personne à l’autre en fonction des projets auxquels l'utilisateur a accès.</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Project list visibility in this instance:</p></td><td class="op-uc-table--cell"><p class="op-uc-p"></p></td><td class="op-uc-table--cell"><p class="op-uc-p">Visibilidad de la lista de proyectos en la instancia:</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Visibilité de la liste des projets dans cette instance:</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Private</p></td><td class="op-uc-table--cell"><p class="op-uc-p"></p></td><td class="op-uc-table--cell"><p class="op-uc-p">Privada</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Privé</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Only you and users with whom this project list is shared can see or edit it.</p></td><td class="op-uc-table--cell"><p class="op-uc-p"></p></td><td class="op-uc-table--cell"><p class="op-uc-p">Solo usted y los usuarios con quien se ha compartido esta lista de proyectos podrán verla o editarla.</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Seuls vous et les utilisateurs avec lesquels cette liste de projets est partagée pouvez la voir ou la modifier.</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Shared with everyone</p></td><td class="op-uc-table--cell"><p class="op-uc-p"></p></td><td class="op-uc-table--cell"><p class="op-uc-p">Compartida con todos</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Partagée avec tout le monde</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">All instance members can view this project list. Those with edit permissions can modify it.</p></td><td class="op-uc-table--cell"><p class="op-uc-p"></p></td><td class="op-uc-table--cell"><p class="op-uc-p">Todos los miembros de la instancia pueden ver esta lista de proyectos. Aquellos que tengan derechos de edición podrán modificarla.</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Tous les membres de l'instance peuvent consulter cette liste de projets. Ceux qui ont des droits de modification peuvent la modifier.</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Search by user or group</p></td><td class="op-uc-table--cell"><p class="op-uc-p"></p></td><td class="op-uc-table--cell"><p class="op-uc-p">Buscar por usuario o grupo</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Recherche par utilisateur ou par groupe</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Not shared with anyone</p></td><td class="op-uc-table--cell"><p class="op-uc-p"></p></td><td class="op-uc-table--cell"><p class="op-uc-p">No compartida</p></td><td class="op-uc-table--cell"><p class="op-uc-p"></p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">This project list has not been shared with anyone yet.</p></td><td class="op-uc-table--cell"><p class="op-uc-p"></p></td><td class="op-uc-table--cell"><p class="op-uc-p">Esta lista de proyecto no se ha compartido aún con nadie.</p></td><td class="op-uc-table--cell"><p class="op-uc-p"></p></td></tr></tbody></table></figure>
**Figma and visuals**
https://www.figma.com/file/YCCMdJWkrtP9YSmf49Od0i/Project-lists?type=design&node-id=1830-41294&mode=design&t=JWw5I0eRsONBc6xj-4
**I want to** turn a project list public (accessible to everybody) or share it with a specific group
**so that** I can have others reuse a list to form a shared view on projects
**Acceptance criteria**
* Sharing/Public:
**Technical notes**
* Add an extra table for list visibility (join table between user and query)
**Relevant translations**
<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">EN (<a class="op-uc-link" href="https://www.figma.com/file/YCCMdJWkrtP9YSmf49Od0i/Project-lists?type=design&node-id=1830-41294&mode=design&t=JWw5I0eRsONBc6xj-4">Figma link</a>)</p></th><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">DE (Figma link)</p></th><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">ES (<a class="op-uc-link" href="https://www.figma.com/file/YCCMdJWkrtP9YSmf49Od0i/Project-lists?type=design&node-id=1912-23079&mode=design&t=JWw5I0eRsONBc6xj-4">Figma link</a>)</p></th><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">FR (<a class="op-uc-link" href="https://www.figma.com/file/YCCMdJWkrtP9YSmf49Od0i/Project-lists?type=design&node-id=1916-15593&mode=design&t=JWw5I0eRsONBc6xj-4">Figma link</a>)</p></th></tr></thead><tbody><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Share project list</p></td><td class="op-uc-table--cell"><p class="op-uc-p"></p></td><td class="op-uc-table--cell"><p class="op-uc-p">Compartir lista de proyectos</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Partager la liste des projets</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Please note that the projects in the list might differ from one user to another depending on which projects the user has access to.</p></td><td class="op-uc-table--cell"><p class="op-uc-p"></p></td><td class="op-uc-table--cell"><p class="op-uc-p">Por favor, tenga en cuenta que la lista de proyectos puede variar para otros usuarios dependiendo a qué proyectos tienen acceso.</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Veuillez noter que les projets figurant dans la liste peuvent différer d'une personne à l’autre en fonction des projets auxquels l'utilisateur a accès.</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Project list visibility in this instance:</p></td><td class="op-uc-table--cell"><p class="op-uc-p"></p></td><td class="op-uc-table--cell"><p class="op-uc-p">Visibilidad de la lista de proyectos en la instancia:</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Visibilité de la liste des projets dans cette instance:</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Private</p></td><td class="op-uc-table--cell"><p class="op-uc-p"></p></td><td class="op-uc-table--cell"><p class="op-uc-p">Privada</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Privé</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Only you and users with whom this project list is shared can see or edit it.</p></td><td class="op-uc-table--cell"><p class="op-uc-p"></p></td><td class="op-uc-table--cell"><p class="op-uc-p">Solo usted y los usuarios con quien se ha compartido esta lista de proyectos podrán verla o editarla.</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Seuls vous et les utilisateurs avec lesquels cette liste de projets est partagée pouvez la voir ou la modifier.</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Shared with everyone</p></td><td class="op-uc-table--cell"><p class="op-uc-p"></p></td><td class="op-uc-table--cell"><p class="op-uc-p">Compartida con todos</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Partagée avec tout le monde</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">All instance members can view this project list. Those with edit permissions can modify it.</p></td><td class="op-uc-table--cell"><p class="op-uc-p"></p></td><td class="op-uc-table--cell"><p class="op-uc-p">Todos los miembros de la instancia pueden ver esta lista de proyectos. Aquellos que tengan derechos de edición podrán modificarla.</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Tous les membres de l'instance peuvent consulter cette liste de projets. Ceux qui ont des droits de modification peuvent la modifier.</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Search by user or group</p></td><td class="op-uc-table--cell"><p class="op-uc-p"></p></td><td class="op-uc-table--cell"><p class="op-uc-p">Buscar por usuario o grupo</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Recherche par utilisateur ou par groupe</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Not shared with anyone</p></td><td class="op-uc-table--cell"><p class="op-uc-p"></p></td><td class="op-uc-table--cell"><p class="op-uc-p">No compartida</p></td><td class="op-uc-table--cell"><p class="op-uc-p"></p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">This project list has not been shared with anyone yet.</p></td><td class="op-uc-table--cell"><p class="op-uc-p"></p></td><td class="op-uc-table--cell"><p class="op-uc-p">Esta lista de proyecto no se ha compartido aún con nadie.</p></td><td class="op-uc-table--cell"><p class="op-uc-p"></p></td></tr></tbody></table></figure>
**Figma and visuals**
https://www.figma.com/file/YCCMdJWkrtP9YSmf49Od0i/Project-lists?type=design&node-id=1830-41294&mode=design&t=JWw5I0eRsONBc6xj-4