feat(invite): existing grafana users now result in new org user directly, no temp user is created, #2353

This commit is contained in:
Torkel Ödegaard 2015-07-18 11:43:34 +02:00
parent a82aa8203b
commit e92f2ecea1

View File

@ -23,6 +23,22 @@ func AddOrgInvite(c *middleware.Context, inviteDto dtos.AddInviteForm) Response
return ApiError(400, "Invalid role specified", nil) return ApiError(400, "Invalid role specified", nil)
} }
// first try get existing user
userQuery := m.GetUserByLoginQuery{LoginOrEmail: inviteDto.Email}
if err := bus.Dispatch(&userQuery); err != nil {
if err != m.ErrUserNotFound {
return ApiError(500, "Failed to query db for existing user check", err)
}
} else {
// user exists, add org role
createOrgUserCmd := m.AddOrgUserCommand{OrgId: c.OrgId, UserId: userQuery.Result.Id, Role: inviteDto.Role}
if err := bus.Dispatch(&createOrgUserCmd); err != nil {
return ApiError(500, "Error while trying to create org user", err)
} else {
return ApiSuccess("Existing Grafana user added to org " + c.OrgName)
}
}
cmd := m.CreateTempUserCommand{} cmd := m.CreateTempUserCommand{}
cmd.OrgId = c.OrgId cmd.OrgId = c.OrgId
cmd.Email = inviteDto.Email cmd.Email = inviteDto.Email