Add glob support to infra_auth_allowed
Bug: skia:12264
Change-Id: I6af8413accffda0100f66e01beabb18f587069de
Reviewed-on: https://skia-review.googlesource.com/c/buildbot/+/432058
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>
diff --git a/go/allowed/infra_auth_allowed.go b/go/allowed/infra_auth_allowed.go
index 8b29ef6..b71fa7b 100644
--- a/go/allowed/infra_auth_allowed.go
+++ b/go/allowed/infra_auth_allowed.go
@@ -25,6 +25,7 @@
type Group struct {
Members []string `json:"members"`
Nested []string `json:"nested"`
+ Globs []string `json:"globs"`
}
// Response represents the format returned from GROUP_URL_TEMPLATE.
@@ -114,6 +115,10 @@
}
members = append(members, indirectMembers...)
}
+ // Get all globs.
+ for _, glob := range r.Group.Globs {
+ members = append(members, glob)
+ }
return members, nil
}
diff --git a/go/allowed/infra_auth_allowed_test.go b/go/allowed/infra_auth_allowed_test.go
index eab80ae..18284f7 100644
--- a/go/allowed/infra_auth_allowed_test.go
+++ b/go/allowed/infra_auth_allowed_test.go
@@ -39,6 +39,9 @@
],
"nested": [
"nested_group"
+ ],
+ "globs": [
+ "user:*@gotham.org"
]
}
}`
@@ -61,6 +64,7 @@
assert.True(t, i.Member("foo@chromium.org"))
assert.True(t, i.Member("test@example.org"))
assert.True(t, i.Member("nested-user@example.org"))
+ assert.True(t, i.Member("batman@gotham.org"))
assert.False(t, i.Member("example.org"))
assert.False(t, i.Member("bar@example.org"))
}