diff --git a/services/cloudbrain/resource/resource_specification.go b/services/cloudbrain/resource/resource_specification.go index 9f8d67595..ad07b30bd 100644 --- a/services/cloudbrain/resource/resource_specification.go +++ b/services/cloudbrain/resource/resource_specification.go @@ -203,15 +203,20 @@ func FindAvailableSpecs(userId int64, opts models.FindSpecsOptions) ([]*models.S //distinct by sourceSpecId specs = distinctSpecs(specs) - return specs, nil + return specs, err } func filterExclusiveSpecs(r []*models.Specification, userId int64) []*models.Specification { specs := make([]*models.Specification, 0, len(r)) + specMap := make(map[int64]string, 0) for i := 0; i < len(r); i++ { spec := r[i] + if _, has := specMap[spec.ID]; has { + continue + } if !spec.IsExclusive { specs = append(specs, spec) + specMap[spec.ID] = "" continue } orgs := strings.Split(spec.ExclusiveOrg, ";") @@ -219,6 +224,7 @@ func filterExclusiveSpecs(r []*models.Specification, userId int64) []*models.Spe isMember, _ := models.IsOrganizationMemberByOrgName(org, userId) if isMember { specs = append(specs, spec) + specMap[spec.ID] = "" } } }