fix(managed_groups): Fix validation function panic (#2390)

The logic would panic if no attributes were specified. Ensure
that attributes are non-nil before checking any sub fields.
This commit is contained in:
Johan Brandhorst-Satzkorn authored and GitHub committed 2022-08-24 18:01:54 -04:00
1 parent ec3d2ef360
commit ac591d8283
2 files changed
+7 -6

No files matched your search

@@ -601,12 +601,13 @@ func validateCreateRequest(req *pbs.CreateManagedGroupRequest) error {
attrs := req.GetItem().GetOidcManagedGroupAttributes()
if attrs == nil {
badFields[globals.AttributesField] = "Attribute fields is required."
}
if attrs.Filter == "" {
badFields[attrFilterField] = "This field is required."
} else {
if _, err := bexpr.CreateEvaluator(attrs.Filter); err != nil {
badFields[attrFilterField] = fmt.Sprintf("Error evaluating submitted filter expression: %v.", err)
if attrs.Filter == "" {
badFields[attrFilterField] = "This field is required."
} else {
if _, err := bexpr.CreateEvaluator(attrs.Filter); err != nil {
badFields[attrFilterField] = fmt.Sprintf("Error evaluating submitted filter expression: %v.", err)
}
}
}
default:
@@ -49,7 +49,7 @@ func TestValidateCreateRequest(t *testing.T) {
AuthMethodId: oidc.AuthMethodPrefix + "_1234567890",
Attrs: nil,
},
errContains: fieldError(attrFilterField, "This field is required."),
errContains: fieldError(globals.AttributesField, "Attribute fields is required."),
},
{
name: "bad oidc attributes",