mirror of
https://github.com/coder/coder.git
synced 2026-09-22 05:05:20 +08:00
chore: merge provisioner key and provisioner permissions (#16628)
Provisioner key permissions were never any different than provisioners. Merging them for a cleaner permission story until they are required (if ever) to be seperate. This removed `ResourceProvisionerKey` from RBAC and just uses the existing `ResourceProvisioner`.
This commit is contained in:
Generated
-2
@@ -13730,7 +13730,6 @@ const docTemplate = `{
|
||||
"organization_member",
|
||||
"provisioner_daemon",
|
||||
"provisioner_jobs",
|
||||
"provisioner_keys",
|
||||
"replicas",
|
||||
"system",
|
||||
"tailnet_coordinator",
|
||||
@@ -13766,7 +13765,6 @@ const docTemplate = `{
|
||||
"ResourceOrganizationMember",
|
||||
"ResourceProvisionerDaemon",
|
||||
"ResourceProvisionerJobs",
|
||||
"ResourceProvisionerKeys",
|
||||
"ResourceReplicas",
|
||||
"ResourceSystem",
|
||||
"ResourceTailnetCoordinator",
|
||||
|
||||
Generated
-2
@@ -12419,7 +12419,6 @@
|
||||
"organization_member",
|
||||
"provisioner_daemon",
|
||||
"provisioner_jobs",
|
||||
"provisioner_keys",
|
||||
"replicas",
|
||||
"system",
|
||||
"tailnet_coordinator",
|
||||
@@ -12455,7 +12454,6 @@
|
||||
"ResourceOrganizationMember",
|
||||
"ResourceProvisionerDaemon",
|
||||
"ResourceProvisionerJobs",
|
||||
"ResourceProvisionerKeys",
|
||||
"ResourceReplicas",
|
||||
"ResourceSystem",
|
||||
"ResourceTailnetCoordinator",
|
||||
|
||||
@@ -324,7 +324,6 @@ var (
|
||||
rbac.ResourceOrganization.Type: {policy.ActionCreate, policy.ActionRead},
|
||||
rbac.ResourceOrganizationMember.Type: {policy.ActionCreate, policy.ActionDelete, policy.ActionRead},
|
||||
rbac.ResourceProvisionerDaemon.Type: {policy.ActionCreate, policy.ActionRead, policy.ActionUpdate},
|
||||
rbac.ResourceProvisionerKeys.Type: {policy.ActionCreate, policy.ActionRead, policy.ActionDelete},
|
||||
rbac.ResourceUser.Type: rbac.ResourceUser.AvailableActions(),
|
||||
rbac.ResourceWorkspaceDormant.Type: {policy.ActionUpdate, policy.ActionDelete, policy.ActionWorkspaceStop},
|
||||
rbac.ResourceWorkspace.Type: {policy.ActionUpdate, policy.ActionDelete, policy.ActionWorkspaceStart, policy.ActionWorkspaceStop, policy.ActionSSH},
|
||||
@@ -3192,7 +3191,7 @@ func (q *querier) InsertProvisionerJobTimings(ctx context.Context, arg database.
|
||||
}
|
||||
|
||||
func (q *querier) InsertProvisionerKey(ctx context.Context, arg database.InsertProvisionerKeyParams) (database.ProvisionerKey, error) {
|
||||
return insert(q.log, q.auth, rbac.ResourceProvisionerKeys.InOrg(arg.OrganizationID).WithID(arg.ID), q.db.InsertProvisionerKey)(ctx, arg)
|
||||
return insert(q.log, q.auth, rbac.ResourceProvisionerDaemon.InOrg(arg.OrganizationID).WithID(arg.ID), q.db.InsertProvisionerKey)(ctx, arg)
|
||||
}
|
||||
|
||||
func (q *querier) InsertReplica(ctx context.Context, arg database.InsertReplicaParams) (database.Replica, error) {
|
||||
|
||||
@@ -277,8 +277,10 @@ func (p GetEligibleProvisionerDaemonsByProvisionerJobIDsRow) RBACObject() rbac.O
|
||||
return p.ProvisionerDaemon.RBACObject()
|
||||
}
|
||||
|
||||
// RBACObject for a provisioner key is the same as a provisioner daemon.
|
||||
// Keys == provisioners from a RBAC perspective.
|
||||
func (p ProvisionerKey) RBACObject() rbac.Object {
|
||||
return rbac.ResourceProvisionerKeys.
|
||||
return rbac.ResourceProvisionerDaemon.
|
||||
WithID(p.ID).
|
||||
InOrg(p.OrganizationID)
|
||||
}
|
||||
|
||||
@@ -206,8 +206,8 @@ var (
|
||||
|
||||
// ResourceProvisionerDaemon
|
||||
// Valid Actions
|
||||
// - "ActionCreate" :: create a provisioner daemon
|
||||
// - "ActionDelete" :: delete a provisioner daemon
|
||||
// - "ActionCreate" :: create a provisioner daemon/key
|
||||
// - "ActionDelete" :: delete a provisioner daemon/key
|
||||
// - "ActionRead" :: read provisioner daemon
|
||||
// - "ActionUpdate" :: update a provisioner daemon
|
||||
ResourceProvisionerDaemon = Object{
|
||||
@@ -221,15 +221,6 @@ var (
|
||||
Type: "provisioner_jobs",
|
||||
}
|
||||
|
||||
// ResourceProvisionerKeys
|
||||
// Valid Actions
|
||||
// - "ActionCreate" :: create a provisioner key
|
||||
// - "ActionDelete" :: delete a provisioner key
|
||||
// - "ActionRead" :: read provisioner keys
|
||||
ResourceProvisionerKeys = Object{
|
||||
Type: "provisioner_keys",
|
||||
}
|
||||
|
||||
// ResourceReplicas
|
||||
// Valid Actions
|
||||
// - "ActionRead" :: read replicas
|
||||
@@ -355,7 +346,6 @@ func AllResources() []Objecter {
|
||||
ResourceOrganizationMember,
|
||||
ResourceProvisionerDaemon,
|
||||
ResourceProvisionerJobs,
|
||||
ResourceProvisionerKeys,
|
||||
ResourceReplicas,
|
||||
ResourceSystem,
|
||||
ResourceTailnetCoordinator,
|
||||
|
||||
@@ -162,11 +162,11 @@ var RBACPermissions = map[string]PermissionDefinition{
|
||||
},
|
||||
"provisioner_daemon": {
|
||||
Actions: map[Action]ActionDefinition{
|
||||
ActionCreate: actDef("create a provisioner daemon"),
|
||||
ActionCreate: actDef("create a provisioner daemon/key"),
|
||||
// TODO: Move to use?
|
||||
ActionRead: actDef("read provisioner daemon"),
|
||||
ActionUpdate: actDef("update a provisioner daemon"),
|
||||
ActionDelete: actDef("delete a provisioner daemon"),
|
||||
ActionDelete: actDef("delete a provisioner daemon/key"),
|
||||
},
|
||||
},
|
||||
"provisioner_jobs": {
|
||||
@@ -174,13 +174,6 @@ var RBACPermissions = map[string]PermissionDefinition{
|
||||
ActionRead: actDef("read provisioner jobs"),
|
||||
},
|
||||
},
|
||||
"provisioner_keys": {
|
||||
Actions: map[Action]ActionDefinition{
|
||||
ActionCreate: actDef("create a provisioner key"),
|
||||
ActionRead: actDef("read provisioner keys"),
|
||||
ActionDelete: actDef("delete a provisioner key"),
|
||||
},
|
||||
},
|
||||
"organization": {
|
||||
Actions: map[Action]ActionDefinition{
|
||||
ActionCreate: actDef("create an organization"),
|
||||
|
||||
@@ -556,15 +556,6 @@ func TestRolePermissions(t *testing.T) {
|
||||
false: {setOtherOrg, memberMe, userAdmin, orgUserAdmin, orgAuditor},
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "ProvisionerKeys",
|
||||
Actions: []policy.Action{policy.ActionCreate, policy.ActionRead, policy.ActionDelete},
|
||||
Resource: rbac.ResourceProvisionerKeys.InOrg(orgID),
|
||||
AuthorizeMap: map[bool][]hasAuthSubjects{
|
||||
true: {owner, orgAdmin},
|
||||
false: {setOtherOrg, memberMe, orgMemberMe, userAdmin, templateAdmin, orgTemplateAdmin, orgUserAdmin, orgAuditor},
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "ProvisionerJobs",
|
||||
Actions: []policy.Action{policy.ActionRead},
|
||||
|
||||
Reference in New Issue
Block a user