Content
View differences
Updated by Jens Ulferts 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)
**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)