chore: change view perm to use (#4496)

This commit is contained in:
Jon Ayers
2022-10-12 14:33:21 -05:00
committed by GitHub
parent 47805643f7
commit 0fa8f528c2
7 changed files with 39 additions and 33 deletions
+1
View File
@@ -420,6 +420,7 @@ func (api *API) fetchTemplateVersionDryRunJob(rw http.ResponseWriter, r *http.Re
httpapi.Forbidden(rw)
return database.ProvisionerJob{}, false
}
// Do a workspace resource check since it's basically a workspace dry-run .
if !api.Authorize(r, rbac.ActionRead,
rbac.ResourceWorkspace.InOrg(templateVersion.OrganizationID).WithOwner(job.InitiatorID.String())) {
+1 -1
View File
@@ -40,7 +40,7 @@ type TemplateRole string
const (
TemplateRoleAdmin TemplateRole = "admin"
TemplateRoleView TemplateRole = "view"
TemplateRoleUse TemplateRole = "use"
TemplateRoleDeleted TemplateRole = ""
)
+2 -2
View File
@@ -226,7 +226,7 @@ func validateTemplateRole(role codersdk.TemplateRole) error {
func convertToTemplateRole(actions []rbac.Action) codersdk.TemplateRole {
switch {
case len(actions) == 1 && actions[0] == rbac.ActionRead:
return codersdk.TemplateRoleView
return codersdk.TemplateRoleUse
case len(actions) == 1 && actions[0] == rbac.WildcardSymbol:
return codersdk.TemplateRoleAdmin
}
@@ -238,7 +238,7 @@ func convertSDKTemplateRole(role codersdk.TemplateRole) []rbac.Action {
switch role {
case codersdk.TemplateRoleAdmin:
return []rbac.Action{rbac.WildcardSymbol}
case codersdk.TemplateRoleView:
case codersdk.TemplateRoleUse:
return []rbac.Action{rbac.ActionRead}
}
+18 -18
View File
@@ -35,7 +35,7 @@ func TestTemplateACL(t *testing.T) {
err := client.UpdateTemplateACL(ctx, template.ID, codersdk.UpdateTemplateACL{
UserPerms: map[string]codersdk.TemplateRole{
user2.ID.String(): codersdk.TemplateRoleView,
user2.ID.String(): codersdk.TemplateRoleUse,
user3.ID.String(): codersdk.TemplateRoleAdmin,
},
})
@@ -46,7 +46,7 @@ func TestTemplateACL(t *testing.T) {
templateUser2 := codersdk.TemplateUser{
User: user2,
Role: codersdk.TemplateRoleView,
Role: codersdk.TemplateRoleUse,
}
templateUser3 := codersdk.TemplateUser{
@@ -149,7 +149,7 @@ func TestTemplateACL(t *testing.T) {
err := client.UpdateTemplateACL(ctx, template.ID, codersdk.UpdateTemplateACL{
UserPerms: map[string]codersdk.TemplateRole{
user1.ID.String(): codersdk.TemplateRoleView,
user1.ID.String(): codersdk.TemplateRoleUse,
},
})
require.NoError(t, err)
@@ -158,7 +158,7 @@ func TestTemplateACL(t *testing.T) {
require.NoError(t, err)
require.Contains(t, acl.Users, codersdk.TemplateUser{
User: user1,
Role: codersdk.TemplateRoleView,
Role: codersdk.TemplateRoleUse,
})
err = client.DeleteUser(ctx, user1.ID)
@@ -187,7 +187,7 @@ func TestTemplateACL(t *testing.T) {
err := client.UpdateTemplateACL(ctx, template.ID, codersdk.UpdateTemplateACL{
UserPerms: map[string]codersdk.TemplateRole{
user1.ID.String(): codersdk.TemplateRoleView,
user1.ID.String(): codersdk.TemplateRoleUse,
},
})
require.NoError(t, err)
@@ -196,7 +196,7 @@ func TestTemplateACL(t *testing.T) {
require.NoError(t, err)
require.Contains(t, acl.Users, codersdk.TemplateUser{
User: user1,
Role: codersdk.TemplateRoleView,
Role: codersdk.TemplateRoleUse,
})
_, err = client.UpdateUserStatus(ctx, user1.ID.String(), codersdk.UserStatusSuspended)
@@ -229,7 +229,7 @@ func TestTemplateACL(t *testing.T) {
err = client.UpdateTemplateACL(ctx, template.ID, codersdk.UpdateTemplateACL{
GroupPerms: map[string]codersdk.TemplateRole{
group.ID.String(): codersdk.TemplateRoleView,
group.ID.String(): codersdk.TemplateRoleUse,
},
})
require.NoError(t, err)
@@ -241,7 +241,7 @@ func TestTemplateACL(t *testing.T) {
require.Contains(t, acl.Groups, codersdk.TemplateGroup{
Group: group,
Role: codersdk.TemplateRoleView,
Role: codersdk.TemplateRoleUse,
})
err = client.DeleteGroup(ctx, group.ID)
@@ -253,7 +253,7 @@ func TestTemplateACL(t *testing.T) {
require.Len(t, acl.Groups, 1)
require.NotContains(t, acl.Groups, codersdk.TemplateGroup{
Group: group,
Role: codersdk.TemplateRoleView,
Role: codersdk.TemplateRoleUse,
})
})
@@ -273,7 +273,7 @@ func TestTemplateACL(t *testing.T) {
err := client.UpdateTemplateACL(ctx, template.ID, codersdk.UpdateTemplateACL{
UserPerms: map[string]codersdk.TemplateRole{
user1.ID.String(): codersdk.TemplateRoleView,
user1.ID.String(): codersdk.TemplateRoleUse,
},
})
require.NoError(t, err)
@@ -331,7 +331,7 @@ func TestUpdateTemplateACL(t *testing.T) {
err := client.UpdateTemplateACL(ctx, template.ID, codersdk.UpdateTemplateACL{
UserPerms: map[string]codersdk.TemplateRole{
user2.ID.String(): codersdk.TemplateRoleView,
user2.ID.String(): codersdk.TemplateRoleUse,
user3.ID.String(): codersdk.TemplateRoleAdmin,
},
})
@@ -342,7 +342,7 @@ func TestUpdateTemplateACL(t *testing.T) {
templateUser2 := codersdk.TemplateUser{
User: user2,
Role: codersdk.TemplateRoleView,
Role: codersdk.TemplateRoleUse,
}
templateUser3 := codersdk.TemplateUser{
@@ -370,7 +370,7 @@ func TestUpdateTemplateACL(t *testing.T) {
template := coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID)
req := codersdk.UpdateTemplateACL{
UserPerms: map[string]codersdk.TemplateRole{
user2.ID.String(): codersdk.TemplateRoleView,
user2.ID.String(): codersdk.TemplateRoleUse,
user3.ID.String(): codersdk.TemplateRoleAdmin,
},
}
@@ -385,7 +385,7 @@ func TestUpdateTemplateACL(t *testing.T) {
require.NoError(t, err)
require.Contains(t, acl.Users, codersdk.TemplateUser{
User: user2,
Role: codersdk.TemplateRoleView,
Role: codersdk.TemplateRoleUse,
})
require.Contains(t, acl.Users, codersdk.TemplateUser{
User: user3,
@@ -506,7 +506,7 @@ func TestUpdateTemplateACL(t *testing.T) {
template := coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID)
req := codersdk.UpdateTemplateACL{
UserPerms: map[string]codersdk.TemplateRole{
user2.ID.String(): codersdk.TemplateRoleView,
user2.ID.String(): codersdk.TemplateRoleUse,
},
}
@@ -553,7 +553,7 @@ func TestUpdateTemplateACL(t *testing.T) {
req = codersdk.UpdateTemplateACL{
UserPerms: map[string]codersdk.TemplateRole{
user3.ID.String(): codersdk.TemplateRoleView,
user3.ID.String(): codersdk.TemplateRoleUse,
},
}
@@ -565,7 +565,7 @@ func TestUpdateTemplateACL(t *testing.T) {
require.Contains(t, acl.Users, codersdk.TemplateUser{
User: user3,
Role: codersdk.TemplateRoleView,
Role: codersdk.TemplateRoleUse,
})
})
@@ -622,7 +622,7 @@ func TestUpdateTemplateACL(t *testing.T) {
GroupPerms: map[string]codersdk.TemplateRole{
// The allUsers group shares the same ID as the organization.
user.OrganizationID.String(): codersdk.TemplateRoleDeleted,
group.ID.String(): codersdk.TemplateRoleView,
group.ID.String(): codersdk.TemplateRoleUse,
},
})
require.NoError(t, err)
+1 -1
View File
@@ -916,7 +916,7 @@ export type ResourceType =
export type ServerSentEventType = "data" | "error" | "ping"
// From codersdk/templates.go
export type TemplateRole = "" | "admin" | "view"
export type TemplateRole = "" | "admin" | "use"
// From codersdk/users.go
export type UserStatus = "active" | "suspended"
@@ -51,14 +51,14 @@ const AddTemplateUserOrGroup: React.FC<AddTemplateUserOrGroupProps> = ({
const styles = useStyles()
const [selectedOption, setSelectedOption] =
useState<UserOrGroupAutocompleteValue>(null)
const [selectedRole, setSelectedRole] = useState<TemplateRole>("view")
const [selectedRole, setSelectedRole] = useState<TemplateRole>("use")
const excludeFromAutocomplete = templateACL
? [...templateACL.group, ...templateACL.users]
: []
const resetValues = () => {
setSelectedOption(null)
setSelectedRole("view")
setSelectedRole("use")
}
return (
@@ -89,7 +89,7 @@ const AddTemplateUserOrGroup: React.FC<AddTemplateUserOrGroupProps> = ({
/>
<Select
defaultValue="view"
defaultValue="use"
variant="outlined"
className={styles.select}
disabled={isLoading}
@@ -97,8 +97,8 @@ const AddTemplateUserOrGroup: React.FC<AddTemplateUserOrGroupProps> = ({
setSelectedRole(event.target.value as TemplateRole)
}}
>
<MenuItem key="view" value="view">
View
<MenuItem key="use" value="use">
Use
</MenuItem>
<MenuItem key="admin" value="admin">
Admin
@@ -129,17 +129,20 @@ const RoleSelect: FC<SelectProps> = (props) => {
className={styles.updateSelect}
{...props}
>
<MenuItem key="view" value="view" className={styles.menuItem}>
<MenuItem key="use" value="use" className={styles.menuItem}>
<div>
<div>View</div>
<div className={styles.menuItemSecondary}>Read, use</div>
<div>Use</div>
<div className={styles.menuItemSecondary}>
Can read and use this template to create workspaces.
</div>
</div>
</MenuItem>
<MenuItem key="admin" value="admin" className={styles.menuItem}>
<div>
<div>Admin</div>
<div className={styles.menuItemSecondary}>
Read, use, edit, push, and delete
Can modify all aspects of this template including permissions,
metadata, and template versions.
</div>
</div>
</MenuItem>
@@ -386,6 +389,8 @@ export const useStyles = makeStyles((theme) => {
lineHeight: "140%",
paddingTop: theme.spacing(1.5),
paddingBottom: theme.spacing(1.5),
whiteSpace: "normal",
inlineSize: "250px",
},
menuItemSecondary: {
+2 -2
View File
@@ -920,10 +920,10 @@ export const MockGroup: TypesGen.Group = {
export const MockTemplateACL: TypesGen.TemplateACL = {
group: [
{ ...everyOneGroup(MockOrganization.id), role: "view" },
{ ...everyOneGroup(MockOrganization.id), role: "use" },
{ ...MockGroup, role: "admin" },
],
users: [{ ...MockUser, role: "view" }],
users: [{ ...MockUser, role: "use" }],
}
export const MockTemplateACLEmpty: TypesGen.TemplateACL = {