Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[STORY] As an admin I want to delegate team mailbox management to a user #894

Open
chibenwa opened this issue Jan 11, 2024 · 1 comment
Open
Labels
enhancement New feature or request good first issue Good for newcomers

Comments

@chibenwa
Copy link
Member

chibenwa commented Jan 11, 2024

User story

Team mailbox manager

As an admin I can promote 0-n team mailbox members as manager (using webadmin).

Technically those team mailbox members are identified via the right a.

All team mailbox members can see other members

As a team mailbox member in team mailbox properties, I can see the list of other users that can access the team mailbox.

Note that all members sees if other members are managers or not.

Team mailbox managers rights

A team mailbox manager can add/remove regular members.

In a V1 of team mailbox management, team mailbox mamager cannot promote/unpromote other team mailbox manager / himself (forbidden to touch right a.

Technically:

  • Webadmin modification to give write a to new users
curl -XPUT http://ip:port/domains/domain.tld/team-mailboxes/marketing/members/bob@domain.tld?role=manager

Would add bob@domain.tld as a member and give him right a

  • Webadmin modification to show roles:
curl -XGET http://ip:port/domains/domain.tld/team-mailboxes/marketting/members

[
  {
     "username": "bob@domain.tld",
     "role": "manager"
  },
  {
     "username": "alice@domain.tld",
     "role": "member"
  },
...
]
  • Webadmin modification to promote an existing user as a team mailbox manager
curl -XPUT http://ip:port/domains/domain.tld/team-mailboxes/marketing/members/bob@domain.tld?role=manager

(Same as create member)

  • Webadmin modification to un-promote an existing manager
curl -XPUT http://ip:port/domains/domain.tld/team-mailboxes/marketing/members/bob@domain.tld?role=member

(Same as create member)

  • JMAP extention to get team mailbox members
[
    "Members/get",
    {
        "accountId": "xyz",
        "ids": ["id-of-any-mailbox-belonging-to-the-team-mailbox"]
    },
    "#0
]    

=> 
[
    "Members/get",
    {
        "list": [{
            "id": "id-of-any-mailbox-belonging-to-the-team-mailbox",
            "members": {
                "bob@domain.tld": {"role":"manager"},
                "alice@domain.tld": {"role":"member"}
             }
         }]
    },
    "#0
}
  • Adding a member:
[
    "Members/set",
    {
        "accountId": "xyz",
        "update": {
            "id-of-any-mailbox-belonging-to-the-team-mailbox"; {
                "member/cedric@domain.tld": {"role":"member"},
                "member/alice@domain.tld": null
            }
        }
    }
    "#0
]    

=> 

[
    "Members/set",
    {
        "updated": {
            "id-of-any-mailbox-belonging-to-the-team-mailbox": null
        }
    },
    "#0
}

Feedback: @dieptran88 @hoangdat @Arsnael

@dieptran88 could you create a user story for listing members of a team mailbox, and for manager to add/remove members on tmail-flutter side?

@Arsnael Good intern topic?

@chibenwa chibenwa added the enhancement New feature or request label Jan 11, 2024
@Arsnael
Copy link
Member

Arsnael commented Jan 12, 2024

@chibenwa looks good to me. This kind of topic looks good as an intern topic indeed

@chibenwa chibenwa added the good first issue Good for newcomers label Jan 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

2 participants