IAM: Add validation to ExternalGroupMapping (#113957)

* Add validation before ExternalGroupMapping creation

* Add FIXME to implement team lookup

* Lint
This commit is contained in:
Misi
2025-11-19 09:48:09 +01:00
committed by GitHub
parent 0d4ad01b65
commit 56c2c1cfe2
2 changed files with 25 additions and 0 deletions
@@ -0,0 +1,22 @@
package externalgroupmapping
import (
iamv0alpha1 "github.com/grafana/grafana/apps/iam/pkg/apis/iam/v0alpha1"
apierrors "k8s.io/apimachinery/pkg/api/errors"
)
func ValidateOnCreate(obj *iamv0alpha1.ExternalGroupMapping) error {
if obj == nil {
return apierrors.NewBadRequest("object must not be nil")
}
if obj.Spec.TeamRef.Name == "" {
return apierrors.NewBadRequest("teamRef.name is required")
}
// FIXME: Add the ability to verify that the team exists in a follow up PR
if obj.Spec.ExternalGroupId == "" {
return apierrors.NewBadRequest("externalGroupId is required")
}
return nil
}
+3
View File
@@ -29,6 +29,7 @@ import (
grafanaregistry "github.com/grafana/grafana/pkg/apiserver/registry/generic"
"github.com/grafana/grafana/pkg/infra/db"
"github.com/grafana/grafana/pkg/infra/log"
"github.com/grafana/grafana/pkg/registry/apis/iam/externalgroupmapping"
"github.com/grafana/grafana/pkg/registry/apis/iam/legacy"
"github.com/grafana/grafana/pkg/registry/apis/iam/noopstorage"
"github.com/grafana/grafana/pkg/registry/apis/iam/resourcepermission"
@@ -490,6 +491,8 @@ func (b *IdentityAccessManagementAPIBuilder) Validate(ctx context.Context, a adm
return teambinding.ValidateOnCreate(ctx, typedObj)
case *iamv0.ResourcePermission:
return resourcepermission.ValidateCreateAndUpdateInput(ctx, typedObj)
case *iamv0.ExternalGroupMapping:
return externalgroupmapping.ValidateOnCreate(typedObj)
}
return nil
case admission.Update: