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 user or group
**so that** I can have others reuse a list to form a shared view on projects
**Acceptance criteria**
* Sharing:
* There are three different sharing approaches:
* **Private:** Only you can see this project list.
* **Shared with individual users:** Choose specific users who can view or edit this project list.
* **Shared with everyone:** Everyone can view this project list. Those with global edit permissions can modify it.
* With the necessary permissions the user can:
* Create a private
* Create a list and share it with a individual users and groups.
* Create a list and share it with everyone (all members of the instance).
* Even on a public instance, only logged in users see and can access the list.
* Anonymous users will only see the static lists (e.g. "Active projects" and "On track")
* \[Nice to have\] When switching back from a list shared with everyone to a list shared with a selected few, the previously selected users should still be selected
* The additional permissions required to share a list are:
* Share project lists with everyone (all instance) -> Permission to share lists with everyone.
* Share private project lists with individual users and groups -> Every logged in user can do this. It does not require an additional permission.
* A new global role is added to create project lists.
* For existing installations
* No user is assigned this role automatically
* Reason: There is no good indication for who should get the role.
* For seeding of new installations
* Users accessing shared lists:
* Users can access the project lists that are shared with them.
* For lists shard with everyone: all instance members can access this lists (with their correspondent permissions to view or edit project lists)
* For lists shared with individual users: only users or groups with whom the list are shared can access them.
* Users can see the other users the list is shared with.
* if lacking edit permission, they cannot see nor edit the roles and also cannot remove users from the list.
* List deletion:
* Lists shared with everyone can be deleted by everyone having the edit permission.
* List shared with individual users can only be deleted by the owner of the list.
* List shared with individual users 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.
* Making changes to lists:
* Shared with everyone lists can be changed (renamed, column selection, filter selection, sort order selection) just like own lists by 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. They can always save as and create a private copy.
* Changing a list shared with individual users can be done by the owner and all the shared users with permissions to edit.
* If the user lacks the edit permission, they have the same options as when changing a shared or static list. They can always save as and create a private copy.
* 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 edit 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 shared with everyone list, the ownership of that list will be transferred to an instance administrator.
* Sidebar:
* A section is added to the sidebar to list all the shared project lists.
**Info**: The sharing of project lists only apply to the 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)
**Open questions**
* **\[open\]** Do we need two different permissions between sharing with users or groups and sharing with everyone?
* **\[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? _I would argue that project managers and admins should have this permissions activated by default._
* **\[open\]** What permission set and name will the new global role for sharing project lists will receive?
* **\[open\]** What is the list of users presented on selecting users for sharing?
* In the system we oftentimes only disclose users who are members in projects the current user is also member in (no specific permission) or all users (if the current user has the permission to manage members)
* **\[open\]** If the owner removes themselves from the list, a dialog should be shown asking the user what to do with the list (remove or transfer ownership).
**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 (<a class="op-uc-link" href="https://www.figma.com/design/YCCMdJWkrtP9YSmf49Od0i/Project-lists?node-id=2194-52992&t=WdCoqyzwXoCNgsOv-4">Figma link</a>)</p></th><th (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=DSAr2A8yGwsMFkdV-4">Figma link</a>)</p></th><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">FR (Figma link)</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">Projektliste teilen</p></td><td 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">Users will only see the projects they have access to. Sharing project lists does not impact individual project permissions.</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Die Nutzer:innen sehen nur die Projekte, auf welche sie Zugriff haben. Die gemeinsame Nutzung von Projektlisten hat keine Auswirkungen auf die Berechtigungen für einzelne Projekte.</p></td><td 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">Les utilisateurs ne verront que les projets auxquels ils ont accès. Le partage des listes de projets ne modifie en rien les droits d'accès aux projets individuels.</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">Privat</p></td><td 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ée</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Only you can see this project list.</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Nur Sie können diese Projektliste sehen.</p></td><td class="op-uc-p"></p></td><td class="op-uc-table--cell"><p class="op-uc-p">Solo usted puede ver esta lista de proyectos.</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Seul vous pouvez consulter cette liste de projets.</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">This project list is only visible to you.</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Nur Sie können diese Projektliste sehen.</p></td><td class="op-uc-p"></p></td><td class="op-uc-table--cell"><p class="op-uc-p">Esta lista de proyectos es solo visible para usted.</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Cette liste de projets n'est visible que par vous.</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Shared with individual users</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Mit einzelnen Nutzer:innen teilen</p></td><td class="op-uc-p"></p></td><td class="op-uc-table--cell"><p class="op-uc-p">Compartida con usuarios individuales</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Partagée avec certains utilisateurs</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Choose specific users who can view or edit this project list.</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Wählen Sie die Nutzer:innen aus, welche die Projektlisten sehen und bearbeiten dürfen.</p></td><td class="op-uc-p"></p></td><td class="op-uc-table--cell"><p class="op-uc-p">Seleccione usuarios concretos que puedan ver o editar esta lista de proyectos.</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Choisissez les utilisateurs qui peuvent voir ou modifier cette liste de projets.</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">Mit allen Nutzer:innen teilen</p></td><td 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">Everyone can view this project list. Those with global edit permissions can modify it.</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Alle Nutzer:innen können diese Projeklise sehen. Diejenigen mit dem globalen Recht “Projektlisten bearbeiten” können diese Projektlisten bearbeiten.</p></td><td class="op-uc-p"></p></td><td class="op-uc-table--cell"><p class="op-uc-p">Todos 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">Tout le monde peut consulter cette liste de projets. Les personnes disposant d'un droit de modification global 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</p></td><td 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">Pas de partage</p></td></tr><tr partage avec quiconque</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">Cette liste de projets n'a encore été partagée avec personne.</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">List owner.</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">Propietario de la lista.</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Propriétaire de la liste</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Part of a shared 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">Parte de un grupo compartido.</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Membre d'un groupe commun.</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](https://www.figma.com/file/YCCMdJWkrtP9YSmf49Od0i/Project-lists?type=design&node-id=1830-41294&mode=design&t=DSAr2A8yGwsMFkdV-4)
**I want to** turn a project list public (accessible to everybody) or share it with a specific user or group
**so that** I can have others reuse a list to form a shared view on projects
**Acceptance criteria**
* Sharing:
* There are three different sharing approaches:
* **Private:** Only you can see this project list.
* **Shared with individual users:** Choose specific users who can view or edit this project list.
* **Shared with everyone:** Everyone can view this project list. Those with global edit permissions can modify it.
* With the necessary permissions the user can:
* Create a private
* Create a list and share it with a individual users and groups.
* Create a list and share it with everyone (all members of the instance).
* Even on a public instance, only logged in users see and can access the list.
* Anonymous users will only see the static lists (e.g. "Active projects" and "On track")
* \[Nice to have\] When switching back from a list shared with everyone to a list shared with a selected few, the previously selected users should still be selected
* The additional permissions required to share a list are:
* Share project lists with everyone (all instance) -> Permission to share lists with everyone.
* Share private project lists with individual users and groups -> Every logged in user can do this. It does not require an additional permission.
* A new global role is added to create project lists.
* For existing installations
* No user is assigned this role automatically
* Reason: There is no good indication for who should get the role.
* For seeding of new installations
* Users accessing shared lists:
* Users can access the project lists that are shared with them.
* For lists shard with everyone: all instance members can access this lists (with their correspondent permissions to view or edit project lists)
* For lists shared with individual users: only users or groups with whom the list are shared can access them.
* Users can see the other users the list is shared with.
* if lacking edit permission, they cannot see nor edit the roles and also cannot remove users from the list.
* List deletion:
* Lists shared with everyone can be deleted by everyone having the edit permission.
* List shared with individual users can only be deleted by the owner of the list.
* List shared with individual users 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.
* Making changes to lists:
* Shared with everyone lists can be changed (renamed, column selection, filter selection, sort order selection) just like own lists by 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. They can always save as and create a private copy.
* Changing a list shared with individual users can be done by the owner and all the shared users with permissions to edit.
* If the user lacks the edit permission, they have the same options as when changing a shared or static list. They can always save as and create a private copy.
* 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 edit 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 shared with everyone list, the ownership of that list will be transferred to an instance administrator.
* Sidebar:
* A section is added to the sidebar to list all the shared project lists.
**Info**: The sharing of project lists only apply to the 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)
**Open questions**
* **\[open\]** Do we need two different permissions between sharing with users or groups and sharing with everyone?
* **\[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? _I would argue that project managers and admins should have this permissions activated by default._
* **\[open\]** What permission set and name will the new global role for sharing project lists will receive?
* **\[open\]** What is the list of users presented on selecting users for sharing?
* In the system we oftentimes only disclose users who are members in projects the current user is also member in (no specific permission) or all users (if the current user has the permission to manage members)
* **\[open\]** If the owner removes themselves from the list, a dialog should be shown asking the user what to do with the list (remove or transfer ownership).
**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 (<a class="op-uc-link" href="https://www.figma.com/design/YCCMdJWkrtP9YSmf49Od0i/Project-lists?node-id=2194-52992&t=WdCoqyzwXoCNgsOv-4">Figma link</a>)</p></th><th
**Figma and visuals**
[https://www.figma.com/file/YCCMdJWkrtP9YSmf49Od0i/Project-lists?type=design&node-id=1830-41294&mode=design&t=JWw5I0eRsONBc6xj-4](https://www.figma.com/file/YCCMdJWkrtP9YSmf49Od0i/Project-lists?type=design&node-id=1830-41294&mode=design&t=DSAr2A8yGwsMFkdV-4)