Skip to content

Commit 42b42ab

Browse files
committed
Handle out of order lists
1 parent 117f838 commit 42b42ab

File tree

3 files changed

+9
-4
lines changed

3 files changed

+9
-4
lines changed

coderd/rbac/builtin.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -174,14 +174,15 @@ func OrganizationRoles(organizationID uuid.UUID) []string {
174174
// the list from the builtins.
175175
func SiteRoles() []string {
176176
var roles []string
177-
for role := range builtInRoles {
178-
_, scope, err := roleSplit(role)
177+
for _, roleF := range builtInRoles {
178+
role := roleF("random")
179+
_, scope, err := roleSplit(role.Name)
179180
if err != nil {
180181
// This should never happen
181182
continue
182183
}
183184
if scope == "" {
184-
roles = append(roles, role)
185+
roles = append(roles, role.Name)
185186
}
186187
}
187188
return roles

coderd/roles_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ func TestListRoles(t *testing.T) {
122122
require.Contains(t, apiErr.Message, c.AuthorizedError)
123123
} else {
124124
require.NoError(t, err)
125-
require.Equal(t, c.ExpectedRoles, roles)
125+
require.ElementsMatch(t, c.ExpectedRoles, roles)
126126
}
127127
})
128128
}

codersdk/roles.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ import (
99
"github.com/google/uuid"
1010
)
1111

12+
// ListSiteRoles lists all available site wide roles.
13+
// This is not user specific.
1214
func (c *Client) ListSiteRoles(ctx context.Context) ([]string, error) {
1315
res, err := c.request(ctx, http.MethodGet, "/api/v2/users/roles", nil)
1416
if err != nil {
@@ -22,6 +24,8 @@ func (c *Client) ListSiteRoles(ctx context.Context) ([]string, error) {
2224
return roles, json.NewDecoder(res.Body).Decode(&roles)
2325
}
2426

27+
// ListOrganizationRoles lists all available roles for a given organization.
28+
// This is not user specific.
2529
func (c *Client) ListOrganizationRoles(ctx context.Context, org uuid.UUID) ([]string, error) {
2630
res, err := c.request(ctx, http.MethodGet, fmt.Sprintf("/api/v2/organizations/%s/members/roles/", org.String()), nil)
2731
if err != nil {

0 commit comments

Comments
 (0)