From e92f2ecea1f26dea3f3a8a1332bfde1dffdd143d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Sat, 18 Jul 2015 11:43:34 +0200 Subject: [PATCH] feat(invite): existing grafana users now result in new org user directly, no temp user is created, #2353 --- pkg/api/org_invite.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/pkg/api/org_invite.go b/pkg/api/org_invite.go index d0477c33355..96264382943 100644 --- a/pkg/api/org_invite.go +++ b/pkg/api/org_invite.go @@ -23,6 +23,22 @@ func AddOrgInvite(c *middleware.Context, inviteDto dtos.AddInviteForm) Response 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.OrgId = c.OrgId cmd.Email = inviteDto.Email