mirror of
https://github.com/coder/coder.git
synced 2026-09-24 15:04:27 +08:00
chore: create type for unique role names (#13506)
* chore: create type for unique role names Using `string` was confusing when something should be combined with org context, and when not to. Naming this new name, "RoleIdentifier"
This commit is contained in:
@@ -56,7 +56,7 @@ func TestFilterError(t *testing.T) {
|
||||
auth := NewAuthorizer(prometheus.NewRegistry())
|
||||
subject := Subject{
|
||||
ID: uuid.NewString(),
|
||||
Roles: RoleNames{},
|
||||
Roles: RoleIdentifiers{},
|
||||
Groups: []string{},
|
||||
Scope: ScopeAll,
|
||||
}
|
||||
@@ -77,7 +77,7 @@ func TestFilterError(t *testing.T) {
|
||||
|
||||
subject := Subject{
|
||||
ID: uuid.NewString(),
|
||||
Roles: RoleNames{
|
||||
Roles: RoleIdentifiers{
|
||||
RoleOwner(),
|
||||
},
|
||||
Groups: []string{},
|
||||
@@ -159,7 +159,7 @@ func TestFilter(t *testing.T) {
|
||||
Name: "NoRoles",
|
||||
Actor: Subject{
|
||||
ID: userIDs[0].String(),
|
||||
Roles: RoleNames{},
|
||||
Roles: RoleIdentifiers{},
|
||||
},
|
||||
ObjectType: ResourceWorkspace.Type,
|
||||
Action: policy.ActionRead,
|
||||
@@ -168,7 +168,7 @@ func TestFilter(t *testing.T) {
|
||||
Name: "Admin",
|
||||
Actor: Subject{
|
||||
ID: userIDs[0].String(),
|
||||
Roles: RoleNames{ScopedRoleOrgMember(orgIDs[0]), "auditor", RoleOwner(), RoleMember()},
|
||||
Roles: RoleIdentifiers{ScopedRoleOrgMember(orgIDs[0]), RoleAuditor(), RoleOwner(), RoleMember()},
|
||||
},
|
||||
ObjectType: ResourceWorkspace.Type,
|
||||
Action: policy.ActionRead,
|
||||
@@ -177,7 +177,7 @@ func TestFilter(t *testing.T) {
|
||||
Name: "OrgAdmin",
|
||||
Actor: Subject{
|
||||
ID: userIDs[0].String(),
|
||||
Roles: RoleNames{ScopedRoleOrgMember(orgIDs[0]), ScopedRoleOrgAdmin(orgIDs[0]), RoleMember()},
|
||||
Roles: RoleIdentifiers{ScopedRoleOrgMember(orgIDs[0]), ScopedRoleOrgAdmin(orgIDs[0]), RoleMember()},
|
||||
},
|
||||
ObjectType: ResourceWorkspace.Type,
|
||||
Action: policy.ActionRead,
|
||||
@@ -186,7 +186,7 @@ func TestFilter(t *testing.T) {
|
||||
Name: "OrgMember",
|
||||
Actor: Subject{
|
||||
ID: userIDs[0].String(),
|
||||
Roles: RoleNames{ScopedRoleOrgMember(orgIDs[0]), ScopedRoleOrgMember(orgIDs[1]), RoleMember()},
|
||||
Roles: RoleIdentifiers{ScopedRoleOrgMember(orgIDs[0]), ScopedRoleOrgMember(orgIDs[1]), RoleMember()},
|
||||
},
|
||||
ObjectType: ResourceWorkspace.Type,
|
||||
Action: policy.ActionRead,
|
||||
@@ -195,7 +195,7 @@ func TestFilter(t *testing.T) {
|
||||
Name: "ManyRoles",
|
||||
Actor: Subject{
|
||||
ID: userIDs[0].String(),
|
||||
Roles: RoleNames{
|
||||
Roles: RoleIdentifiers{
|
||||
ScopedRoleOrgMember(orgIDs[0]), ScopedRoleOrgAdmin(orgIDs[0]),
|
||||
ScopedRoleOrgMember(orgIDs[1]), ScopedRoleOrgAdmin(orgIDs[1]),
|
||||
ScopedRoleOrgMember(orgIDs[2]), ScopedRoleOrgAdmin(orgIDs[2]),
|
||||
@@ -211,7 +211,7 @@ func TestFilter(t *testing.T) {
|
||||
Name: "SiteMember",
|
||||
Actor: Subject{
|
||||
ID: userIDs[0].String(),
|
||||
Roles: RoleNames{RoleMember()},
|
||||
Roles: RoleIdentifiers{RoleMember()},
|
||||
},
|
||||
ObjectType: ResourceUser.Type,
|
||||
Action: policy.ActionRead,
|
||||
@@ -220,7 +220,7 @@ func TestFilter(t *testing.T) {
|
||||
Name: "ReadOrgs",
|
||||
Actor: Subject{
|
||||
ID: userIDs[0].String(),
|
||||
Roles: RoleNames{
|
||||
Roles: RoleIdentifiers{
|
||||
ScopedRoleOrgMember(orgIDs[0]),
|
||||
ScopedRoleOrgMember(orgIDs[1]),
|
||||
ScopedRoleOrgMember(orgIDs[2]),
|
||||
@@ -235,7 +235,7 @@ func TestFilter(t *testing.T) {
|
||||
Name: "ScopeApplicationConnect",
|
||||
Actor: Subject{
|
||||
ID: userIDs[0].String(),
|
||||
Roles: RoleNames{ScopedRoleOrgMember(orgIDs[0]), "auditor", RoleOwner(), RoleMember()},
|
||||
Roles: RoleIdentifiers{ScopedRoleOrgMember(orgIDs[0]), RoleAuditor(), RoleOwner(), RoleMember()},
|
||||
},
|
||||
ObjectType: ResourceWorkspace.Type,
|
||||
Action: policy.ActionRead,
|
||||
@@ -394,7 +394,7 @@ func TestAuthorizeDomain(t *testing.T) {
|
||||
ID: "me",
|
||||
Scope: must(ExpandScope(ScopeAll)),
|
||||
Roles: Roles{{
|
||||
Name: "deny-all",
|
||||
Identifier: RoleIdentifier{Name: "deny-all"},
|
||||
// List out deny permissions explicitly
|
||||
Site: []Permission{
|
||||
{
|
||||
@@ -607,8 +607,8 @@ func TestAuthorizeDomain(t *testing.T) {
|
||||
Scope: must(ExpandScope(ScopeAll)),
|
||||
Roles: Roles{
|
||||
{
|
||||
Name: "ReadOnlyOrgAndUser",
|
||||
Site: []Permission{},
|
||||
Identifier: RoleIdentifier{Name: "ReadOnlyOrgAndUser"},
|
||||
Site: []Permission{},
|
||||
Org: map[string][]Permission{
|
||||
defOrg.String(): {{
|
||||
Negate: false,
|
||||
@@ -701,7 +701,7 @@ func TestAuthorizeLevels(t *testing.T) {
|
||||
Roles: Roles{
|
||||
must(RoleByName(RoleOwner())),
|
||||
{
|
||||
Name: "org-deny:" + defOrg.String(),
|
||||
Identifier: RoleIdentifier{Name: "org-deny:", OrganizationID: defOrg},
|
||||
Org: map[string][]Permission{
|
||||
defOrg.String(): {
|
||||
{
|
||||
@@ -713,7 +713,7 @@ func TestAuthorizeLevels(t *testing.T) {
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "user-deny-all",
|
||||
Identifier: RoleIdentifier{Name: "user-deny-all"},
|
||||
// List out deny permissions explicitly
|
||||
User: []Permission{
|
||||
{
|
||||
@@ -761,7 +761,7 @@ func TestAuthorizeLevels(t *testing.T) {
|
||||
Scope: must(ExpandScope(ScopeAll)),
|
||||
Roles: Roles{
|
||||
{
|
||||
Name: "site-noise",
|
||||
Identifier: RoleIdentifier{Name: "site-noise"},
|
||||
Site: []Permission{
|
||||
{
|
||||
Negate: true,
|
||||
@@ -772,7 +772,7 @@ func TestAuthorizeLevels(t *testing.T) {
|
||||
},
|
||||
must(RoleByName(ScopedRoleOrgAdmin(defOrg))),
|
||||
{
|
||||
Name: "user-deny-all",
|
||||
Identifier: RoleIdentifier{Name: "user-deny-all"},
|
||||
// List out deny permissions explicitly
|
||||
User: []Permission{
|
||||
{
|
||||
@@ -896,7 +896,7 @@ func TestAuthorizeScope(t *testing.T) {
|
||||
},
|
||||
Scope: Scope{
|
||||
Role: Role{
|
||||
Name: "workspace_agent",
|
||||
Identifier: RoleIdentifier{Name: "workspace_agent"},
|
||||
DisplayName: "Workspace Agent",
|
||||
Site: Permissions(map[string][]policy.Action{
|
||||
// Only read access for workspaces.
|
||||
@@ -985,7 +985,7 @@ func TestAuthorizeScope(t *testing.T) {
|
||||
},
|
||||
Scope: Scope{
|
||||
Role: Role{
|
||||
Name: "create_workspace",
|
||||
Identifier: RoleIdentifier{Name: "create_workspace"},
|
||||
DisplayName: "Create Workspace",
|
||||
Site: Permissions(map[string][]policy.Action{
|
||||
// Only read access for workspaces.
|
||||
|
||||
Reference in New Issue
Block a user