Introduce public teams to improve sharing behaviour #2173

Closed
opened 2024-03-08 18:10:53 +00:00 by waza-ari · 1 comment
Contributor

Summary

This proposal aims to implement a new concept around teams, allowing the teams admin (or OIDC admin) to control whether a team should be public or not. A public team can be discovered by any user (even if the user is not member of that team) when trying to share any project.

Problem Statement

User story not being supported by the current approach:

Team A and Team B both work in Vikunja, each Team having their respective Vikunja Team. Lisa (member of Team A) wants to enable collaboration between both teams and creates a new project to track common tasks. While Lisa can share the project with her own team, she cannot share the project with Team B, as she is not a member of Team B.

Proposal

The proposal is to add a flag to teams that can be configured by the team admin, controlling the visibility of the team. Similarly to GitHub projects, a team can either be public (in which case it is discoverable by everyone) or private (in which case it's only discoverable by members). When sharing a project, the user can then find (a) all teams the user is member of and (b) all public teams.

Vikunja managed teams can be configured in the UI or via the API by team admins. For OIDC teams, the schema is extended with a flag to control the behaviour.

The feature itself will be opt-in and needs to be enabled at instance level. In addition, the default behaviour for the public flag when creating a team should be configurable at instance level as well.

Details

  • The Team model is extended by a flag called IsPublic, defaulting to False
  • The UI is extended such that during Team creation or modification, admins can configure the team to be public or private
  • For OIDC teams, we extend the schema by an optional public element, which controls the same flag
  • The current /teams endpoint gets an additional query parameter controlling whether public teams should be shown or not. This is needed as both the Teams main page (showing the Teams for each user) and the project sharing dialogue use the same endpoint.
  • The Teams UI page should not show public teams
### Summary This proposal aims to implement a new concept around teams, allowing the teams admin (or OIDC admin) to control whether a team should be public or not. A public team can be discovered by any user (even if the user is not member of that team) when trying to share any project. ### Problem Statement User story not being supported by the current approach: Team A and Team B both work in Vikunja, each Team having their respective Vikunja Team. Lisa (member of Team A) wants to enable collaboration between both teams and creates a new project to track common tasks. While Lisa can share the project with her own team, she cannot share the project with Team B, as she is not a member of Team B. ### Proposal The proposal is to add a flag to teams that can be configured by the team admin, controlling the visibility of the team. Similarly to GitHub projects, a team can either be public (in which case it is discoverable by everyone) or private (in which case it's only discoverable by members). When sharing a project, the user can then find (a) all teams the user is member of and (b) all public teams. Vikunja managed teams can be configured in the UI or via the API by team admins. For OIDC teams, the schema is extended with a flag to control the behaviour. The feature itself will be opt-in and needs to be enabled at instance level. In addition, the default behaviour for the public flag when creating a team should be configurable at instance level as well. ### Details - The Team model is extended by a flag called `IsPublic`, defaulting to False - The UI is extended such that during Team creation or modification, admins can configure the team to be public or private - For OIDC teams, we extend the schema by an optional public element, which controls the same flag - The current `/teams` endpoint gets an additional query parameter controlling whether public teams should be shown or not. This is needed as both the Teams main page (showing the Teams for each user) and the project sharing dialogue use the same endpoint. - The Teams UI page should not show public teams
waza-ari added the
kind/bug
label 2024-03-08 18:10:53 +00:00
konrad added
kind/feature
and removed
kind/bug
labels 2024-03-08 18:16:54 +00:00
Owner

Looks good! Only one comment: The team flag should be called IsPublic (I know, that's very nitpicky, but better communicate it now) and be false by default

Looks good! Only one comment: The team flag should be called `IsPublic` (I know, that's very nitpicky, but better communicate it now) and be false by default
Sign in to join this conversation.
No Milestone
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: vikunja/vikunja#2173
No description provided.