diff --git a/pkg/api/org_invite.go b/pkg/api/org_invite.go index 3974faeaeef..09eb8bfb0b5 100644 --- a/pkg/api/org_invite.go +++ b/pkg/api/org_invite.go @@ -134,6 +134,9 @@ func CompleteInvite(c *middleware.Context, completeInvite dtos.CompleteInviteFor } invite := query.Result + if invite.Status != m.TmpUserInvitePending { + return ApiError(412, fmt.Sprintf("Invite cannot be used in status %s", invite.Status), nil) + } cmd := m.CreateUserCommand{ Email: completeInvite.Email, @@ -164,6 +167,7 @@ func CompleteInvite(c *middleware.Context, completeInvite dtos.CompleteInviteFor loginUserWithUser(&user, c) metrics.M_Api_User_SignUp.Inc(1) + metrics.M_Api_User_SignUpInvite.Inc(1) return ApiSuccess("User created and logged in") } diff --git a/pkg/metrics/metrics.go b/pkg/metrics/metrics.go index f6dab8c8043..0850cbebc06 100644 --- a/pkg/metrics/metrics.go +++ b/pkg/metrics/metrics.go @@ -14,6 +14,7 @@ var ( M_Api_Status_404 = NewComboCounterRef("api.status.404") M_Api_User_SignUp = NewComboCounterRef("api.user.signup") + M_Api_User_SignUpInvite = NewComboCounterRef("api.user.signup_invite") M_Api_Dashboard_Get = NewComboCounterRef("api.dashboard.get") M_Api_Dashboard_Post = NewComboCounterRef("api.dashboard.post") M_Api_Admin_User_Create = NewComboCounterRef("api.admin.user_create") diff --git a/public/app/features/org/partials/invite.html b/public/app/features/org/partials/invite.html index d8ac5a434b7..a53da115ae1 100644 --- a/public/app/features/org/partials/invite.html +++ b/public/app/features/org/partials/invite.html @@ -5,11 +5,11 @@