@@ -270,11 +270,15 @@ func ReloadBuiltinRoles(opts *RoleOptions) {
270
270
Site : append (
271
271
// Workspace dormancy and workspace are omitted.
272
272
// Workspace is specifically handled based on the opts.NoOwnerWorkspaceExec
273
- allPermsExcept (ResourceWorkspaceDormant , ResourceWorkspace ),
273
+ allPermsExcept (ResourceWorkspaceDormant , ResourcePrebuiltWorkspace , ResourceWorkspace ),
274
274
// This adds back in the Workspace permissions.
275
275
Permissions (map [string ][]policy.Action {
276
276
ResourceWorkspace .Type : ownerWorkspaceActions ,
277
277
ResourceWorkspaceDormant .Type : {policy .ActionRead , policy .ActionDelete , policy .ActionCreate , policy .ActionUpdate , policy .ActionWorkspaceStop , policy .ActionCreateAgent , policy .ActionDeleteAgent },
278
+ // PrebuiltWorkspaces are a subset of Workspaces.
279
+ // Explicitly setting PrebuiltWorkspace permissions for clarity.
280
+ // Note: even without PrebuiltWorkspace permissions, access is still granted via Workspace permissions.
281
+ ResourcePrebuiltWorkspace .Type : {policy .ActionRead , policy .ActionUpdate , policy .ActionDelete },
278
282
})... ),
279
283
Org : map [string ][]Permission {},
280
284
User : []Permission {},
@@ -290,7 +294,7 @@ func ReloadBuiltinRoles(opts *RoleOptions) {
290
294
ResourceWorkspaceProxy .Type : {policy .ActionRead },
291
295
}),
292
296
Org : map [string ][]Permission {},
293
- User : append (allPermsExcept (ResourceWorkspaceDormant , ResourceUser , ResourceOrganizationMember ),
297
+ User : append (allPermsExcept (ResourceWorkspaceDormant , ResourcePrebuiltWorkspace , ResourceUser , ResourceOrganizationMember ),
294
298
Permissions (map [string ][]policy.Action {
295
299
// Reduced permission set on dormant workspaces. No build, ssh, or exec
296
300
ResourceWorkspaceDormant .Type : {policy .ActionRead , policy .ActionDelete , policy .ActionCreate , policy .ActionUpdate , policy .ActionWorkspaceStop , policy .ActionCreateAgent , policy .ActionDeleteAgent },
@@ -417,6 +421,10 @@ func ReloadBuiltinRoles(opts *RoleOptions) {
417
421
organizationID .String (): append (allPermsExcept (ResourceWorkspace , ResourceWorkspaceDormant , ResourcePrebuiltWorkspace , ResourceAssignRole ), Permissions (map [string ][]policy.Action {
418
422
ResourceWorkspaceDormant .Type : {policy .ActionRead , policy .ActionDelete , policy .ActionCreate , policy .ActionUpdate , policy .ActionWorkspaceStop , policy .ActionCreateAgent , policy .ActionDeleteAgent },
419
423
ResourceWorkspace .Type : slice .Omit (ResourceWorkspace .AvailableActions (), policy .ActionApplicationConnect , policy .ActionSSH ),
424
+ // PrebuiltWorkspaces are a subset of Workspaces.
425
+ // Explicitly setting PrebuiltWorkspace permissions for clarity.
426
+ // Note: even without PrebuiltWorkspace permissions, access is still granted via Workspace permissions.
427
+ ResourcePrebuiltWorkspace .Type : {policy .ActionRead , policy .ActionUpdate , policy .ActionDelete },
420
428
})... ),
421
429
},
422
430
User : []Permission {},
0 commit comments