From 5eceabf8100ca6bf1ae9edb41f0551745f0a48f3 Mon Sep 17 00:00:00 2001 From: Zdenek Styblik Date: Wed, 8 Jun 2016 05:46:21 +0200 Subject: [PATCH] fix(): Check Organization exists before User is added (#5302) Commit adds a check whether Organization exists before User is added to the organization. Fixes #3151. --- pkg/login/ldap.go | 3 ++- pkg/services/sqlstore/org_users.go | 6 ++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/pkg/login/ldap.go b/pkg/login/ldap.go index 48f226ccfa5..0c817c9df0b 100644 --- a/pkg/login/ldap.go +++ b/pkg/login/ldap.go @@ -219,7 +219,8 @@ func (a *ldapAuther) syncOrgRoles(user *m.User, ldapUser *ldapUserInfo) error { // add role cmd := m.AddOrgUserCommand{UserId: user.Id, Role: group.OrgRole, OrgId: group.OrgId} - if err := bus.Dispatch(&cmd); err != nil { + err := bus.Dispatch(&cmd) + if err != nil && err != m.ErrOrgNotFound { return err } diff --git a/pkg/services/sqlstore/org_users.go b/pkg/services/sqlstore/org_users.go index fdd671d0bfe..11ea558b0ce 100644 --- a/pkg/services/sqlstore/org_users.go +++ b/pkg/services/sqlstore/org_users.go @@ -26,6 +26,12 @@ func AddOrgUser(cmd *m.AddOrgUserCommand) error { return m.ErrOrgUserAlreadyAdded } + if res, err := sess.Query("SELECT 1 from org WHERE id=?", cmd.OrgId); err != nil { + return err + } else if len(res) != 1 { + return m.ErrOrgNotFound + } + entity := m.OrgUser{ OrgId: cmd.OrgId, UserId: cmd.UserId,