Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 01a492e

Browse files
committed
SlimRole has organizaton scope now in response, remove from the name
1 parent 5bd1280 commit 01a492e

File tree

5 files changed

+29
-14
lines changed

5 files changed

+29
-14
lines changed

coderd/database/db2sdk/db2sdk.go

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -204,13 +204,6 @@ func Group(group database.Group, members []database.User) codersdk.Group {
204204
}
205205
}
206206

207-
func SlimRole(role rbac.Role) codersdk.SlimRole {
208-
return codersdk.SlimRole{
209-
DisplayName: role.DisplayName,
210-
Name: role.Name,
211-
}
212-
}
213-
214207
func TemplateInsightsParameters(parameterRows []database.GetTemplateParameterInsightsRow) ([]codersdk.TemplateParameterUsage, error) {
215208
// Use a stable sort, similarly to how we would sort in the query, note that
216209
// we don't sort in the query because order varies depending on the table
@@ -525,6 +518,19 @@ func ProvisionerDaemon(dbDaemon database.ProvisionerDaemon) codersdk.Provisioner
525518
return result
526519
}
527520

521+
func SlimRole(role rbac.Role) codersdk.SlimRole {
522+
roleName, orgIDStr, err := rbac.RoleSplit(role.Name)
523+
if err != nil {
524+
roleName = role.Name
525+
}
526+
527+
return codersdk.SlimRole{
528+
DisplayName: role.DisplayName,
529+
Name: roleName,
530+
OrganizationID: orgIDStr,
531+
}
532+
}
533+
528534
func RBACRole(role rbac.Role) codersdk.Role {
529535
roleName, orgIDStr, err := rbac.RoleSplit(role.Name)
530536
if err != nil {

coderd/members.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ func convertOrganizationMember(mem database.OrganizationMember) codersdk.Organiz
6868
}
6969

7070
for _, roleName := range mem.Roles {
71-
rbacRole, _ := rbac.RoleByName(roleName)
71+
rbacRole, _ := rbac.RoleByName(rbac.RoleName(roleName, mem.OrganizationID.String()))
7272
convertedMember.Roles = append(convertedMember.Roles, db2sdk.SlimRole(rbacRole))
7373
}
7474
return convertedMember

coderd/rbac/roles.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,14 @@ func RoleMember() string {
7070
return RoleName(member, "")
7171
}
7272

73+
func StaticRoleOrgAdmin() string {
74+
return orgAdmin
75+
}
76+
77+
func StaticRoleOrgMember() string {
78+
return orgMember
79+
}
80+
7381
func RoleOrgAdmin(organizationID uuid.UUID) string {
7482
return RoleName(orgAdmin, organizationID.String())
7583
}

coderd/users_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -986,7 +986,7 @@ func TestGrantSiteRoles(t *testing.T) {
986986
Name: "OrgRoleInSite",
987987
Client: admin,
988988
AssignToUser: codersdk.Me,
989-
Roles: []string{rbac.RoleOrgAdmin(first.OrganizationID)},
989+
Roles: []string{rbac.StaticRoleOrgAdmin()},
990990
Error: true,
991991
StatusCode: http.StatusBadRequest,
992992
},
@@ -1029,7 +1029,7 @@ func TestGrantSiteRoles(t *testing.T) {
10291029
Client: orgAdmin,
10301030
OrgID: randOrg.ID,
10311031
AssignToUser: randOrgUser.ID.String(),
1032-
Roles: []string{rbac.RoleOrgMember(randOrg.ID)},
1032+
Roles: []string{rbac.StaticRoleOrgMember()},
10331033
Error: true,
10341034
StatusCode: http.StatusNotFound,
10351035
},
@@ -1047,9 +1047,9 @@ func TestGrantSiteRoles(t *testing.T) {
10471047
Client: orgAdmin,
10481048
OrgID: first.OrganizationID,
10491049
AssignToUser: newUser,
1050-
Roles: []string{rbac.RoleOrgAdmin(first.OrganizationID)},
1050+
Roles: []string{rbac.StaticRoleOrgAdmin()},
10511051
ExpectedRoles: []string{
1052-
rbac.RoleOrgAdmin(first.OrganizationID),
1052+
rbac.StaticRoleOrgAdmin(),
10531053
},
10541054
Error: false,
10551055
},

codersdk/roles.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,9 @@ import (
1414
// and it would require extra db calls to fetch this information. The UI does
1515
// not need it, so most api calls will use this structure that omits information.
1616
type SlimRole struct {
17-
Name string `json:"name"`
18-
DisplayName string `json:"display_name"`
17+
Name string `json:"name"`
18+
DisplayName string `json:"display_name"`
19+
OrganizationID string `json:"organization_id"`
1920
}
2021

2122
type AssignableRoles struct {

0 commit comments

Comments
 (0)