IAM: Add validation to ExternalGroupMapping (#113957)
* Add validation before ExternalGroupMapping creation * Add FIXME to implement team lookup * Lint
This commit is contained in:
@@ -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
|
||||
}
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user