-
Notifications
You must be signed in to change notification settings - Fork 38
Closed
Description
UPDATE: See comments below
The data model root is namespaced (soft multi-tenancy) by an organization entity. Users are connected to different organizations through memberships.
At user registration time, an organization and its membership will be created.
That's the extent of our current membership handling. It has the following limitations:
- No other users can be added to the same organization (unless a DB entry is manually added)
- memberships can not be deleted, meaning a user can't leave an organization.
This task is about to be able to add users, existing or not, to be added to an existing organization.
Invitation system context
This could be performed via an invitation system, and it should contain
- [user 1] being able to create an invitation to org1 for user@example.com
- this invitation should be time-limited and exclusive to the given org and user
- [user 2] should be able to accept/decline the invitation
- [user 1] should be able to revoke the invite
Invitation system implementation first cut
User 1
Create invitation
chainloop org invite create --org deadbeef --user john@cyberdyne.com
=> invitation created with code "XC-A0-12-BT" valid for 1 week
You can list the invitations
chainloop org invite ls
or revoke it
chainloop org invite revoke --code XC-A0-12-BT
chainloop org invite create --org deadbeef --user john@cyberdyne.com
user 2
Join an org
chainloop org invite accept --code XC-A0-12-BT
or reject the invite
chainloop org invite reject --code XC-A0-12-BT
Refs #350