Procházet zdrojové kódy

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.
Zdenek Styblik před 9 roky
rodič
revize
5eceabf810
2 změnil soubory, kde provedl 8 přidání a 1 odebrání
  1. 2 1
      pkg/login/ldap.go
  2. 6 0
      pkg/services/sqlstore/org_users.go

+ 2 - 1
pkg/login/ldap.go

@@ -219,7 +219,8 @@ func (a *ldapAuther) syncOrgRoles(user *m.User, ldapUser *ldapUserInfo) error {
 
 
 		// add role
 		// add role
 		cmd := m.AddOrgUserCommand{UserId: user.Id, Role: group.OrgRole, OrgId: group.OrgId}
 		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
 			return err
 		}
 		}
 
 

+ 6 - 0
pkg/services/sqlstore/org_users.go

@@ -26,6 +26,12 @@ func AddOrgUser(cmd *m.AddOrgUserCommand) error {
 			return m.ErrOrgUserAlreadyAdded
 			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{
 		entity := m.OrgUser{
 			OrgId:   cmd.OrgId,
 			OrgId:   cmd.OrgId,
 			UserId:  cmd.UserId,
 			UserId:  cmd.UserId,