|
@@ -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
|