Skip to content

Circles, contact groups and user groups #13478

@MorrisJobke

Description

@MorrisJobke

Problem

We have so many grouping mechanisms and they are confusing for people that don't know the technical background of them. We should unify the way those are handled into a single way of grouping users.

  • circles
  • contact groups
  • (system) user groups
  • federated groups
  • ...

Idea

Idea is to have some grouping entity that is the only way of organizing a group of users and contacts.

Additionally a layer is added to the server to share to some grouping entity only and not to groups, users or federated users anymore, because those are 3 concepts that basically do the same: share something to 1...n users.

  • each user is at least in one of those groupings (the grouping with only the user itself) <- that is used to replace user shares

Attributes

  • this grouping entity has a name (random one by default)
  • this grouping entity has a type (single user, group of users)? - can be build with permissions (no adding/removing permission for anybody for the single user type)
  • this grouping entity has a permission who can manage it (joining, adding, removing users, change name)
  • this grouping entity has a visibility

Steps

  • discuss the idea (right here in the ticket)
  • define the scope and specs
  • implement this grouping mechanism (which exists in parallel to the existing ones and undisclosed to any UI)
  • implement sharing part
  • migrate user shares, groups, circles, contact groups
  • remove existing shares, rooms, circles, ...

Note: the last two steps need to be done in one release. The other ones can be done in separate major releases to be able to move this forward and not have one huge changeset that nobody can review properly.

Problems

  • the UI needs to make it easy what this grouping entity is about (admins, permissions, visibility)
  • the UI needs to make it obvious where this grouping entity comes from to avoid phishing attacks by creating a similar looking entity via federated groups for example
  • for migration: what about existing collisions? if there is a circle, a group and 3 contact groups named the same? - during migration, we can add something at the end of the name
  • how are the groups managed? User mgmt and Contacts? And additionally inherent grouping using "Linking Collaboration Things"? (Ideally the name "Circles" does not show up – it’s just "users" and "groups")

Other approaches

Linking collaboration things™ - #11015

  • links a random entity (room, file, board, ...) to another one and each user that has access to any of them then they also have access to the linked ones
  • it's still different, because the goal is not to group users but to group data objects

Design forward: How we handle Users / Groups / Circles - #4493

  • this one is another approach to not evolve but rethink the whole concept to not be limited by the existing structures

cc @skjnldsv @juliushaertl @rullzer @jancborchardt @ChristophWurst @danielkesselberg @blizzz @schiessle @nickvergessen @daita for feedback on this topic.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions