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**
Note that the implementation done for sharing work packages is heavily reused for the implementation of this feature.
**Specification depending on the perspective of the user:**
* **User sharing a project list:** the user can perform the action by clicking on the share icon on the PageHeader. That will trigger the share modal where with the necessary permissions can: Sharing:
* Create a private list (only There are three different sharing approaches:
* **Private:** Only you can see it).
this project list.
* Share the list **Shared with a individual users:** Choose specific users and groups using the search user who can view or group and select the desired role for them.
edit this project list.
* As soon as a user is added the owner of the list is also added to **Shared with everyone:** Everyone can view this project list.
Those with global edit permissions can modify it.
* When a user is added a flash message warning that With the content of necessary permissions the project list might differ from one user to another is added to the modal. can:
* Create a private
* The users that are in the Create a list due to bing part of shared group have and share it with a specific message bellow their name.
individual users and groups.
* Share the Create a list and share it with everyone (all members of the instance) using the toggle switch on top of the search bar.
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 the toggle is activated switching back from a flash message warning that the content of the project list might differ from one user shared with everyone to another is added to a list shared with a selected few, the modal.
previously selected users should still be selected
* The users added additional permissions required to the share modal a list will always be displayed no matter if the share are:
* Share project lists with everyone function is activated or not so if the user wants they could give edit permissions (all instance) -> Permission to users that only have project list view permissions in certain lists. Members who are added in the list with "View" permissions while the switch of share lists with everyone is active will have a special message bellow regarding their global permission.
> **Important note**: The sharing of everyone.
* Share private project lists only apply to the lists. with individual users and groups -> Every logged in user can do this. It does not give the users access require an additional permission.
* A new global role is added to the projects itself. So different users can see different results when clicking on shared create project lists based on their individual project roles.
lists.
* **Users accessing shared lists:** users can access For existing installations
* No user is assigned this role automatically
* Reason: There is no good indication for who should get the lists shared with them or everyone using the role.
* For seeding of new sidebar section for all the installations
* Users accessing shared project lists. lists:
* They Users can access the project lists that are shared with them.
* Users or groups with whom the list are shared can access them and modify them if they have edit permission.
* For lists shard with everyone: all instance members can access this lists (with their correspondent permissions to view or edit project lists). lists)
* If For lists shared with individual users: only users or groups with whom the user lacks the edit permission, they have the same options as when changing a list are shared or static list. They can always save as and create a private copy. access them.
* They Users can see the other users the list is shared with.
* If if lacking edit permission, they cannot see nor edit the roles and also cannot remove users from the list.
* **Users wanting to delete a shared list:** List deletion:
* Shared lists Lists shared with everyone can be deleted by everyone having the edit permission. A modal to confirm the action will
* List shared with individual users can only be displayed before deleting deleted by the list alerting owner of the list.
* Users List shared with view permissions 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.
* **Users want Making changes to delete users:** lists:
* Owner of the list Shared with everyone lists can not be removed.
changed (renamed, column selection, filter selection, sort order selection) just like own lists by users having the edit permission.
* When all If the users but user lacks the owner edit permission, they have the modal will go back to the empty statuses (check mockups).
**Permissions**
same options as when changing a shared or static list. They can always save as and create a private copy.
* The additional permissions required to share Changing a list are:
* Share project lists shared with everyone (all instance) -> Permission to share lists with everyone.
* Share project lists with individual users can be done by the owner and groups -> Every logged in user can do this. It does not require an additional permission.
* A new global role is added all the shared users with permissions to create project lists. edit.
* For existing installations
* No If the user is assigned this role automatically
* Reason: There is no good indication for who should get lacks the role.
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.
* For seeding of new installations
**Mobile specification**
User deletion:
* In mobile case the modal deleted user is the "owner" of lists that has been shared with other users the ownership will be a full screen modal with transferred to the content:
* Box to activate share first user with everyone with edit permissions in the switch. shared list. If there is no such user left, the list would be removed.
* Flash message when necessary for In case the different content per deleted user in is the list.
"owner" of a shared with everyone list, the ownership of that list will be transferred to an instance administrator.
* Search bar with buttons Sidebar:
* A section is added to add users. The placeholder text on the search bar should be truncated if sidebar to list all the screen is too small.
* shared project lists.
**Info**: The table sharing of project lists only apply to the lists. It does not give the users with reduced functionalities:
* No checkboxes and therefore no bulk actions.
* No user avatars
## 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)
## **Figma and visuals**
[https://www.figma.com/design/YCCMdJWkrtP9YSmf49Od0i/Project-lists?node-id=2194-47137&t=FSIEPbtj6VEO5bRJ-4](https://www.figma.com/design/YCCMdJWkrtP9YSmf49Od0i/Project-lists?node-id=2194-47137&t=FSIEPbtj6VEO5bRJ-4)
## **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)
## **Translations**
* **\[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</p></th><th 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</p></th><th 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 class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">ES</p></th><th 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</p></th></tr></thead><tbody><tr 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-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">Share with everyone at [Instance name]</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 los usuarios de [Instance name]</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">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-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">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-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">Not shared: Private</p></td><td class="op-uc-p">Private</p></td><td class="op-uc-table--cell"><p class="op-uc-p"></p></td><td class="op-uc-p">Privat</p></td><td class="op-uc-table--cell"><p class="op-uc-p">No compartida: Privada</p></td><td class="op-uc-p">Privada</p></td><td class="op-uc-table--cell"><p class="op-uc-p"></p></td></tr><tr 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">This project list has not been shared with anyone yet. Only class="op-uc-p">Only you can access see this project list.</p></td><td class="op-uc-table--cell"><p class="op-uc-p"></p></td><td class="op-uc-p">Nur Sie können diese Projektliste sehen.</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-table--cell"><p class="op-uc-p">Esta lista de proyectos no se ha compartido aún. Solo usted puede 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-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-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"></p></td></tr><tr 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-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. You Those with global edit permissions can also add individual users with extra permissions.</p></td><td modify it.</p></td><td class="op-uc-table--cell"><p class="op-uc-p"></p></td><td 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-table--cell"><p class="op-uc-p">Todos pueden ver esta lista de proyectos. También puede añadir usuarios individuales con permisos adicionales.</p></td><td Aquellos que tengan derechos de edición podrán modificarla.</p></td><td class="op-uc-table--cell"><p class="op-uc-p"></p></td></tr><tr 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 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 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><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Can already view because list is 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">Ya puede ver porqué la lista esta compartida con todos</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">Can edit due to global permissions</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">Puede editar debido a sus permissos globales</p></td><td class="op-uc-table--cell"><p class="op-uc-p"></p></td></tr></tbody></table></figure> 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**
Note that the implementation done for sharing work packages is heavily reused for the implementation of this feature.
**Specification depending on the perspective of the user:**
* **User sharing a project list:** the user can perform the action by clicking on the share icon on the PageHeader. That will trigger the share modal where with the necessary permissions can:
* Create a private list (only
* **Private:** Only
* Create a private
* The users that are in the
* Share project lists
> **Important note**: The sharing of
* Share private
* A new global role is added
* No user is assigned this role automatically
* Reason: There is no good indication for who should get
* For seeding of
* Users accessing
* They
* Users or groups with whom the list are shared can access them and modify them if they have edit permission.
* For lists shard with everyone: all instance members can access this lists (with their correspondent permissions to view or edit project lists).
* If
* They
* If
* Shared lists
* List shared with individual users can only
* Users
* Owner of the list
**Permissions**
* Share project lists
* Share project lists with individual users
* A new global role is added
* For existing installations
* No
* Reason: There is no good indication for who should get
**Mobile specification**
* Box to activate share
* Flash message when necessary for
* A section is added
*
**Info**:
* No checkboxes and therefore no bulk actions.
* No user avatars
##
* 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)
## **Figma and visuals**
[https://www.figma.com/design/YCCMdJWkrtP9YSmf49Od0i/Project-lists?node-id=2194-47137&t=FSIEPbtj6VEO5bRJ-4](https://www.figma.com/design/YCCMdJWkrtP9YSmf49Od0i/Project-lists?node-id=2194-47137&t=FSIEPbtj6VEO5bRJ-4)
## **Open questions**
* **\[open\]**
* **\[open\]**
* **\[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)
## **Translations**
* **\[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</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)