Skip to content

Commit 0fa8f52

Browse files
authored
chore: change view perm to use (coder#4496)
1 parent 4780564 commit 0fa8f52

File tree

7 files changed

+39
-33
lines changed

7 files changed

+39
-33
lines changed

coderd/templateversions.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -420,6 +420,7 @@ func (api *API) fetchTemplateVersionDryRunJob(rw http.ResponseWriter, r *http.Re
420420
httpapi.Forbidden(rw)
421421
return database.ProvisionerJob{}, false
422422
}
423+
423424
// Do a workspace resource check since it's basically a workspace dry-run .
424425
if !api.Authorize(r, rbac.ActionRead,
425426
rbac.ResourceWorkspace.InOrg(templateVersion.OrganizationID).WithOwner(job.InitiatorID.String())) {

codersdk/templates.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ type TemplateRole string
4040

4141
const (
4242
TemplateRoleAdmin TemplateRole = "admin"
43-
TemplateRoleView TemplateRole = "view"
43+
TemplateRoleUse TemplateRole = "use"
4444
TemplateRoleDeleted TemplateRole = ""
4545
)
4646

enterprise/coderd/templates.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,7 @@ func validateTemplateRole(role codersdk.TemplateRole) error {
226226
func convertToTemplateRole(actions []rbac.Action) codersdk.TemplateRole {
227227
switch {
228228
case len(actions) == 1 && actions[0] == rbac.ActionRead:
229-
return codersdk.TemplateRoleView
229+
return codersdk.TemplateRoleUse
230230
case len(actions) == 1 && actions[0] == rbac.WildcardSymbol:
231231
return codersdk.TemplateRoleAdmin
232232
}
@@ -238,7 +238,7 @@ func convertSDKTemplateRole(role codersdk.TemplateRole) []rbac.Action {
238238
switch role {
239239
case codersdk.TemplateRoleAdmin:
240240
return []rbac.Action{rbac.WildcardSymbol}
241-
case codersdk.TemplateRoleView:
241+
case codersdk.TemplateRoleUse:
242242
return []rbac.Action{rbac.ActionRead}
243243
}
244244

enterprise/coderd/templates_test.go

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ func TestTemplateACL(t *testing.T) {
3535

3636
err := client.UpdateTemplateACL(ctx, template.ID, codersdk.UpdateTemplateACL{
3737
UserPerms: map[string]codersdk.TemplateRole{
38-
user2.ID.String(): codersdk.TemplateRoleView,
38+
user2.ID.String(): codersdk.TemplateRoleUse,
3939
user3.ID.String(): codersdk.TemplateRoleAdmin,
4040
},
4141
})
@@ -46,7 +46,7 @@ func TestTemplateACL(t *testing.T) {
4646

4747
templateUser2 := codersdk.TemplateUser{
4848
User: user2,
49-
Role: codersdk.TemplateRoleView,
49+
Role: codersdk.TemplateRoleUse,
5050
}
5151

5252
templateUser3 := codersdk.TemplateUser{
@@ -149,7 +149,7 @@ func TestTemplateACL(t *testing.T) {
149149

150150
err := client.UpdateTemplateACL(ctx, template.ID, codersdk.UpdateTemplateACL{
151151
UserPerms: map[string]codersdk.TemplateRole{
152-
user1.ID.String(): codersdk.TemplateRoleView,
152+
user1.ID.String(): codersdk.TemplateRoleUse,
153153
},
154154
})
155155
require.NoError(t, err)
@@ -158,7 +158,7 @@ func TestTemplateACL(t *testing.T) {
158158
require.NoError(t, err)
159159
require.Contains(t, acl.Users, codersdk.TemplateUser{
160160
User: user1,
161-
Role: codersdk.TemplateRoleView,
161+
Role: codersdk.TemplateRoleUse,
162162
})
163163

164164
err = client.DeleteUser(ctx, user1.ID)
@@ -187,7 +187,7 @@ func TestTemplateACL(t *testing.T) {
187187

188188
err := client.UpdateTemplateACL(ctx, template.ID, codersdk.UpdateTemplateACL{
189189
UserPerms: map[string]codersdk.TemplateRole{
190-
user1.ID.String(): codersdk.TemplateRoleView,
190+
user1.ID.String(): codersdk.TemplateRoleUse,
191191
},
192192
})
193193
require.NoError(t, err)
@@ -196,7 +196,7 @@ func TestTemplateACL(t *testing.T) {
196196
require.NoError(t, err)
197197
require.Contains(t, acl.Users, codersdk.TemplateUser{
198198
User: user1,
199-
Role: codersdk.TemplateRoleView,
199+
Role: codersdk.TemplateRoleUse,
200200
})
201201

202202
_, err = client.UpdateUserStatus(ctx, user1.ID.String(), codersdk.UserStatusSuspended)
@@ -229,7 +229,7 @@ func TestTemplateACL(t *testing.T) {
229229

230230
err = client.UpdateTemplateACL(ctx, template.ID, codersdk.UpdateTemplateACL{
231231
GroupPerms: map[string]codersdk.TemplateRole{
232-
group.ID.String(): codersdk.TemplateRoleView,
232+
group.ID.String(): codersdk.TemplateRoleUse,
233233
},
234234
})
235235
require.NoError(t, err)
@@ -241,7 +241,7 @@ func TestTemplateACL(t *testing.T) {
241241

242242
require.Contains(t, acl.Groups, codersdk.TemplateGroup{
243243
Group: group,
244-
Role: codersdk.TemplateRoleView,
244+
Role: codersdk.TemplateRoleUse,
245245
})
246246

247247
err = client.DeleteGroup(ctx, group.ID)
@@ -253,7 +253,7 @@ func TestTemplateACL(t *testing.T) {
253253
require.Len(t, acl.Groups, 1)
254254
require.NotContains(t, acl.Groups, codersdk.TemplateGroup{
255255
Group: group,
256-
Role: codersdk.TemplateRoleView,
256+
Role: codersdk.TemplateRoleUse,
257257
})
258258
})
259259

@@ -273,7 +273,7 @@ func TestTemplateACL(t *testing.T) {
273273

274274
err := client.UpdateTemplateACL(ctx, template.ID, codersdk.UpdateTemplateACL{
275275
UserPerms: map[string]codersdk.TemplateRole{
276-
user1.ID.String(): codersdk.TemplateRoleView,
276+
user1.ID.String(): codersdk.TemplateRoleUse,
277277
},
278278
})
279279
require.NoError(t, err)
@@ -331,7 +331,7 @@ func TestUpdateTemplateACL(t *testing.T) {
331331

332332
err := client.UpdateTemplateACL(ctx, template.ID, codersdk.UpdateTemplateACL{
333333
UserPerms: map[string]codersdk.TemplateRole{
334-
user2.ID.String(): codersdk.TemplateRoleView,
334+
user2.ID.String(): codersdk.TemplateRoleUse,
335335
user3.ID.String(): codersdk.TemplateRoleAdmin,
336336
},
337337
})
@@ -342,7 +342,7 @@ func TestUpdateTemplateACL(t *testing.T) {
342342

343343
templateUser2 := codersdk.TemplateUser{
344344
User: user2,
345-
Role: codersdk.TemplateRoleView,
345+
Role: codersdk.TemplateRoleUse,
346346
}
347347

348348
templateUser3 := codersdk.TemplateUser{
@@ -370,7 +370,7 @@ func TestUpdateTemplateACL(t *testing.T) {
370370
template := coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID)
371371
req := codersdk.UpdateTemplateACL{
372372
UserPerms: map[string]codersdk.TemplateRole{
373-
user2.ID.String(): codersdk.TemplateRoleView,
373+
user2.ID.String(): codersdk.TemplateRoleUse,
374374
user3.ID.String(): codersdk.TemplateRoleAdmin,
375375
},
376376
}
@@ -385,7 +385,7 @@ func TestUpdateTemplateACL(t *testing.T) {
385385
require.NoError(t, err)
386386
require.Contains(t, acl.Users, codersdk.TemplateUser{
387387
User: user2,
388-
Role: codersdk.TemplateRoleView,
388+
Role: codersdk.TemplateRoleUse,
389389
})
390390
require.Contains(t, acl.Users, codersdk.TemplateUser{
391391
User: user3,
@@ -506,7 +506,7 @@ func TestUpdateTemplateACL(t *testing.T) {
506506
template := coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID)
507507
req := codersdk.UpdateTemplateACL{
508508
UserPerms: map[string]codersdk.TemplateRole{
509-
user2.ID.String(): codersdk.TemplateRoleView,
509+
user2.ID.String(): codersdk.TemplateRoleUse,
510510
},
511511
}
512512

@@ -553,7 +553,7 @@ func TestUpdateTemplateACL(t *testing.T) {
553553

554554
req = codersdk.UpdateTemplateACL{
555555
UserPerms: map[string]codersdk.TemplateRole{
556-
user3.ID.String(): codersdk.TemplateRoleView,
556+
user3.ID.String(): codersdk.TemplateRoleUse,
557557
},
558558
}
559559

@@ -565,7 +565,7 @@ func TestUpdateTemplateACL(t *testing.T) {
565565

566566
require.Contains(t, acl.Users, codersdk.TemplateUser{
567567
User: user3,
568-
Role: codersdk.TemplateRoleView,
568+
Role: codersdk.TemplateRoleUse,
569569
})
570570
})
571571

@@ -622,7 +622,7 @@ func TestUpdateTemplateACL(t *testing.T) {
622622
GroupPerms: map[string]codersdk.TemplateRole{
623623
// The allUsers group shares the same ID as the organization.
624624
user.OrganizationID.String(): codersdk.TemplateRoleDeleted,
625-
group.ID.String(): codersdk.TemplateRoleView,
625+
group.ID.String(): codersdk.TemplateRoleUse,
626626
},
627627
})
628628
require.NoError(t, err)

site/src/api/typesGenerated.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -916,7 +916,7 @@ export type ResourceType =
916916
export type ServerSentEventType = "data" | "error" | "ping"
917917

918918
// From codersdk/templates.go
919-
export type TemplateRole = "" | "admin" | "view"
919+
export type TemplateRole = "" | "admin" | "use"
920920

921921
// From codersdk/users.go
922922
export type UserStatus = "active" | "suspended"

site/src/pages/TemplatePage/TemplatePermissionsPage/TemplatePermissionsPageView.tsx

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -51,14 +51,14 @@ const AddTemplateUserOrGroup: React.FC<AddTemplateUserOrGroupProps> = ({
5151
const styles = useStyles()
5252
const [selectedOption, setSelectedOption] =
5353
useState<UserOrGroupAutocompleteValue>(null)
54-
const [selectedRole, setSelectedRole] = useState<TemplateRole>("view")
54+
const [selectedRole, setSelectedRole] = useState<TemplateRole>("use")
5555
const excludeFromAutocomplete = templateACL
5656
? [...templateACL.group, ...templateACL.users]
5757
: []
5858

5959
const resetValues = () => {
6060
setSelectedOption(null)
61-
setSelectedRole("view")
61+
setSelectedRole("use")
6262
}
6363

6464
return (
@@ -89,16 +89,16 @@ const AddTemplateUserOrGroup: React.FC<AddTemplateUserOrGroupProps> = ({
8989
/>
9090

9191
<Select
92-
defaultValue="view"
92+
defaultValue="use"
9393
variant="outlined"
9494
className={styles.select}
9595
disabled={isLoading}
9696
onChange={(event) => {
9797
setSelectedRole(event.target.value as TemplateRole)
9898
}}
9999
>
100-
<MenuItem key="view" value="view">
101-
View
100+
<MenuItem key="use" value="use">
101+
Use
102102
</MenuItem>
103103
<MenuItem key="admin" value="admin">
104104
Admin
@@ -129,17 +129,20 @@ const RoleSelect: FC<SelectProps> = (props) => {
129129
className={styles.updateSelect}
130130
{...props}
131131
>
132-
<MenuItem key="view" value="view" className={styles.menuItem}>
132+
<MenuItem key="use" value="use" className={styles.menuItem}>
133133
<div>
134-
<div>View</div>
135-
<div className={styles.menuItemSecondary}>Read, use</div>
134+
<div>Use</div>
135+
<div className={styles.menuItemSecondary}>
136+
Can read and use this template to create workspaces.
137+
</div>
136138
</div>
137139
</MenuItem>
138140
<MenuItem key="admin" value="admin" className={styles.menuItem}>
139141
<div>
140142
<div>Admin</div>
141143
<div className={styles.menuItemSecondary}>
142-
Read, use, edit, push, and delete
144+
Can modify all aspects of this template including permissions,
145+
metadata, and template versions.
143146
</div>
144147
</div>
145148
</MenuItem>
@@ -386,6 +389,8 @@ export const useStyles = makeStyles((theme) => {
386389
lineHeight: "140%",
387390
paddingTop: theme.spacing(1.5),
388391
paddingBottom: theme.spacing(1.5),
392+
whiteSpace: "normal",
393+
inlineSize: "250px",
389394
},
390395

391396
menuItemSecondary: {

site/src/testHelpers/entities.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -920,10 +920,10 @@ export const MockGroup: TypesGen.Group = {
920920

921921
export const MockTemplateACL: TypesGen.TemplateACL = {
922922
group: [
923-
{ ...everyOneGroup(MockOrganization.id), role: "view" },
923+
{ ...everyOneGroup(MockOrganization.id), role: "use" },
924924
{ ...MockGroup, role: "admin" },
925925
],
926-
users: [{ ...MockUser, role: "view" }],
926+
users: [{ ...MockUser, role: "use" }],
927927
}
928928

929929
export const MockTemplateACLEmpty: TypesGen.TemplateACL = {

0 commit comments

Comments
 (0)