gno icon indicating copy to clipboard operation
gno copied to clipboard

gnoland: team support

Open moul opened this issue 8 months ago • 3 comments

Allow a registered user to transform into a team by publishing a contract that registers the members in a registry. This will involve creating a new r/sys/teams realm to manage the many-to-many relationship between teams and members.

New Realm: r/sys/teams

  • Purpose: Keep track of the many-to-many relationship between teams and members.
  • Authentication: Verify if the caller is r/<handle>/home to take <handle> as the team name.
  • PR #2184 implements this logic.

Next Steps

  1. VMKeeper Logic:

    • Only allow adding a package under a specific handle (p/<handle>/* or r/<handle>/*) if the tx author is the user with that <handle> (1-1) or a member of the team (many-to-many).
    • Related with #375, #1107, ... (list is longer)
  2. Demonstration of the flow to create a team

    1. Create a new private key.
    2. Register a user account on r/gnoland/users.
    3. Upload r/<handle>/home importing r/sys/teams and configuring it statically or dynamically.
    4. Register members via the contract.
  3. Other considerations

    • Team to User Conversion: Block for now the option to convert back a team into a user for now.
    • Bonus: List team members and member’s teams in u/<handle> (see #2189).
    • Onchain keypair burning: Implement a way to "burn" a public key on-chain, making it unusable after team creation to ensure only team members can act on behalf of the team.

moul avatar May 25 '24 10:05 moul