diff --git a/internal/website/permstable/permstable.go b/internal/website/permstable/permstable.go index 214f5b392c..bfd2dbaf09 100644 --- a/internal/website/permstable/permstable.go +++ b/internal/website/permstable/permstable.go @@ -339,13 +339,19 @@ func sortedKeys(in map[string]string) []string { return out } +// info holds information for a specific resource type info struct { - scopes []string - actionDescriptions map[action.Type]string + // The scopes this resource can be in + scopes []string + // If the auto generated descriptions do not correctly cover these actions + // for this resource, including the action and a description here will + // cause this to be used instead of the auto generated one. + actionDescOverrides map[action.Type]string } +// get the description for a resource. func (i info) description(t action.Type, singleResourceName string) string { - if s, ok := i.actionDescriptions[t]; ok { + if s, ok := i.actionDescOverrides[t]; ok { return s } switch t { @@ -381,7 +387,7 @@ func (i info) description(t action.Type, singleResourceName string) string { var resources = map[resource.Type]info{ resource.Account: { scopes: iamScopes, - actionDescriptions: map[action.Type]string{ + actionDescOverrides: map[action.Type]string{ action.SetPassword: "Set a password on an account, without requiring the current password", action.ChangePassword: "Change a password on an account given the current password", }, @@ -391,7 +397,7 @@ var resources = map[resource.Type]info{ }, resource.AuthMethod: { scopes: iamScopes, - actionDescriptions: map[action.Type]string{ + actionDescOverrides: map[action.Type]string{ action.Authenticate: "Authenticate to an auth method", }, }, @@ -430,7 +436,7 @@ var resources = map[resource.Type]info{ }, resource.Session: { scopes: infraScope, - actionDescriptions: map[action.Type]string{ + actionDescOverrides: map[action.Type]string{ action.Cancel: "Cancel a session", action.CancelSelf: "Cancel a session, which must be associated with the calling user", action.ReadSelf: "Read a session, which must be associated with the calling user", @@ -438,7 +444,7 @@ var resources = map[resource.Type]info{ }, resource.SessionRecording: { scopes: iamScopes, - actionDescriptions: map[action.Type]string{ + actionDescOverrides: map[action.Type]string{ action.Download: "Download a session recording", action.ReApplyStoragePolicy: "Reapply the storage policy to a session recording", }, @@ -448,7 +454,7 @@ var resources = map[resource.Type]info{ }, resource.Target: { scopes: infraScope, - actionDescriptions: map[action.Type]string{ + actionDescOverrides: map[action.Type]string{ action.AuthorizeSession: "Authorize a session via the target", }, }, @@ -457,7 +463,7 @@ var resources = map[resource.Type]info{ }, resource.Worker: { scopes: []string{"Global"}, - actionDescriptions: map[action.Type]string{ + actionDescOverrides: map[action.Type]string{ action.CreateControllerLed: "Create a worker using the controller-led workflow", action.CreateWorkerLed: "Create a worker using the worker-led workflow", },