mirror of
https://github.com/coder/coder.git
synced 2026-09-24 15:04:27 +08:00
feat: configurable default org member roles (#25994)
Refs #25936. Adds a configurable per-org default member role set. Unioned into each member's effective roles at read time. <sub>with Coder Agents on behalf of @Emyrk.</sub>
This commit is contained in:
@@ -50,11 +50,12 @@ func TestExtractUserRoles(t *testing.T) {
|
||||
roles := []string{}
|
||||
user, token := addUser(t, db, roles...)
|
||||
org, err := db.InsertOrganization(context.Background(), database.InsertOrganizationParams{
|
||||
ID: uuid.New(),
|
||||
Name: "testorg",
|
||||
Description: "test",
|
||||
CreatedAt: time.Now(),
|
||||
UpdatedAt: time.Now(),
|
||||
ID: uuid.New(),
|
||||
Name: "testorg",
|
||||
Description: "test",
|
||||
CreatedAt: time.Now(),
|
||||
UpdatedAt: time.Now(),
|
||||
DefaultOrgMemberRoles: rbac.DefaultOrgMemberRoles(),
|
||||
})
|
||||
require.NoError(t, err)
|
||||
|
||||
@@ -67,7 +68,7 @@ func TestExtractUserRoles(t *testing.T) {
|
||||
Roles: orgRoles,
|
||||
})
|
||||
require.NoError(t, err)
|
||||
return user, []rbac.RoleIdentifier{rbac.RoleMember(), rbac.ScopedRoleOrgMember(org.ID)}, token
|
||||
return user, []rbac.RoleIdentifier{rbac.RoleMember(), rbac.ScopedRoleOrgMember(org.ID), rbac.ScopedRoleOrgWorkspaceAccess(org.ID)}, token
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -78,11 +79,12 @@ func TestExtractUserRoles(t *testing.T) {
|
||||
expected = append(expected, rbac.RoleMember())
|
||||
for i := 0; i < 3; i++ {
|
||||
organization, err := db.InsertOrganization(context.Background(), database.InsertOrganizationParams{
|
||||
ID: uuid.New(),
|
||||
Name: fmt.Sprintf("testorg%d", i),
|
||||
Description: "test",
|
||||
CreatedAt: time.Now(),
|
||||
UpdatedAt: time.Now(),
|
||||
ID: uuid.New(),
|
||||
Name: fmt.Sprintf("testorg%d", i),
|
||||
Description: "test",
|
||||
CreatedAt: time.Now(),
|
||||
UpdatedAt: time.Now(),
|
||||
DefaultOrgMemberRoles: rbac.DefaultOrgMemberRoles(),
|
||||
})
|
||||
require.NoError(t, err)
|
||||
|
||||
@@ -100,6 +102,7 @@ func TestExtractUserRoles(t *testing.T) {
|
||||
})
|
||||
require.NoError(t, err)
|
||||
expected = append(expected, rbac.ScopedRoleOrgMember(organization.ID))
|
||||
expected = append(expected, rbac.ScopedRoleOrgWorkspaceAccess(organization.ID))
|
||||
}
|
||||
return user, expected, token
|
||||
},
|
||||
|
||||
@@ -116,10 +116,11 @@ func TestOrganizationParam(t *testing.T) {
|
||||
rtr = chi.NewRouter()
|
||||
)
|
||||
organization, err := db.InsertOrganization(r.Context(), database.InsertOrganizationParams{
|
||||
ID: uuid.New(),
|
||||
Name: "test",
|
||||
CreatedAt: dbtime.Now(),
|
||||
UpdatedAt: dbtime.Now(),
|
||||
ID: uuid.New(),
|
||||
Name: "test",
|
||||
CreatedAt: dbtime.Now(),
|
||||
UpdatedAt: dbtime.Now(),
|
||||
DefaultOrgMemberRoles: rbac.DefaultOrgMemberRoles(),
|
||||
})
|
||||
require.NoError(t, err)
|
||||
chi.RouteContext(r.Context()).URLParams.Add("organization", organization.ID.String())
|
||||
|
||||
Reference in New Issue
Block a user