teams: editors can't remove the last admin from a team.

This commit is contained in:
Leonard Gram
2019-03-19 14:01:13 +01:00
parent 8593668ab2
commit 21d3d27452
6 changed files with 65 additions and 6 deletions
+7 -2
View File
@@ -81,7 +81,7 @@ func UpdateTeamMember(c *m.ReqContext, cmd m.UpdateTeamMemberCommand) Response {
}
// DELETE /api/teams/:teamId/members/:userId
func RemoveTeamMember(c *m.ReqContext) Response {
func (hs *HTTPServer) RemoveTeamMember(c *m.ReqContext) Response {
orgId := c.OrgId
teamId := c.ParamsInt64(":teamId")
userId := c.ParamsInt64(":userId")
@@ -90,7 +90,12 @@ func RemoveTeamMember(c *m.ReqContext) Response {
return Error(403, "Not allowed to remove team member", err)
}
if err := bus.Dispatch(&m.RemoveTeamMemberCommand{OrgId: orgId, TeamId: teamId, UserId: userId}); err != nil {
protectLastAdmin := false
if c.OrgRole == m.ROLE_EDITOR {
protectLastAdmin = true
}
if err := bus.Dispatch(&m.RemoveTeamMemberCommand{OrgId: orgId, TeamId: teamId, UserId: userId, ProtectLastAdmin: protectLastAdmin}); err != nil {
if err == m.ErrTeamNotFound {
return Error(404, "Team not found", nil)
}