Skip to content

Draft: Group manager for average users and better collaboration support

Sebastian Bernd Mohr requested to merge group-manager into main

Groups are already present but need some refinement in my opinion.

Every user should have access to group management. Maybe to limit abuse the number of allowed groups created by a user should be limited.

Users have to accept an group invite by default but automatic integration with external group management should be possible (SSO).

The following things are needed in my opinion to make this a long lasting and useful feature.

Group manager component

An UI component (maybe placed in the users settings) to allow to create or manage groups.

  • Form: Should allow to create/delete groups
  • Table: Manage memberships and your groups
    • invite new users / resend invitations
    • remove users from group
    • transfer ownership
    • set moderators (people how are allowed to invite users)
  • Admin flag to force users into group without invitation

Notification page

The notification page should show pending invitations and collaboration requests. Additionally these requests should be send by email.

Email requests

Create endpoint to send an invite request. Email should contain link to join the book. This can be typically implemented with token, the building blocks for this should already be present.

Rework/enhance the collaboration editor for books

At the moment a collaboration request is not send by email and people are just added to a book. The current form might be enhanced or reworked for invitation requests. Maybe also show pending requests.

Changes to the table structure

Add an owner column to the groups table with foreign constrain to user table. Add a moderator column to the users_group many to many table which indicates if a user is moderator of the group.

Notification also have to be stored somehow to allow the notifications to show. Lets keep this reasonably modular with the following columns:

Column Type Description
id ID
created_at Date Creation date of the notification
sender user_id The user who created the notification
recipient user_id The user who received the notification
email_send_at Date Last date the email was sent to notify the user
notification_type Enum BookCollaboration, JoinGroup

Merge request reports