From 7e76a92aa1946086467b54174b5db51e618d51d9 Mon Sep 17 00:00:00 2001 From: ramya18101 Date: Mon, 8 Dec 2025 13:42:39 +0530 Subject: [PATCH] add resource server identifier flag alias for roles permissions commands --- docs/auth0_roles_permissions_add.md | 6 ++- docs/auth0_roles_permissions_remove.md | 6 ++- internal/cli/flags.go | 72 +++++++++++++++++++++++++- internal/cli/roles_permissions.go | 17 +++--- 4 files changed, 89 insertions(+), 12 deletions(-) diff --git a/docs/auth0_roles_permissions_add.md b/docs/auth0_roles_permissions_add.md index d3d2dd052..a73fa04a2 100644 --- a/docs/auth0_roles_permissions_add.md +++ b/docs/auth0_roles_permissions_add.md @@ -20,14 +20,16 @@ auth0 roles permissions add [flags] auth0 roles permissions add --api-id auth0 roles permissions add --api-id --permissions auth0 roles permissions add -a -p + auth0 roles permissions add --resource-server-identifier --permissions ``` ## Flags ``` - -a, --api-id string API Identifier. - -p, --permissions strings Permissions. + -a, --api-id string API Identifier. + -p, --permissions strings Permissions. + --resource-server-identifier string API Identifier. ``` diff --git a/docs/auth0_roles_permissions_remove.md b/docs/auth0_roles_permissions_remove.md index 1d804d719..4afe52009 100644 --- a/docs/auth0_roles_permissions_remove.md +++ b/docs/auth0_roles_permissions_remove.md @@ -19,14 +19,16 @@ auth0 roles permissions remove [flags] auth0 roles permissions rm --api-id auth0 roles permissions rm --api-id --permissions auth0 roles permissions rm -a -p + auth0 roles permissions rm --resource-server-identifier --permissions ``` ## Flags ``` - -a, --api-id string API Identifier. - -p, --permissions strings Permissions. + -a, --api-id string API Identifier. + -p, --permissions strings Permissions. + --resource-server-identifier string API Identifier. ``` diff --git a/internal/cli/flags.go b/internal/cli/flags.go index 0da723869..8627a5821 100644 --- a/internal/cli/flags.go +++ b/internal/cli/flags.go @@ -17,6 +17,7 @@ type Flag struct { Help string IsRequired bool AlwaysPrompt bool + AlsoKnownAs []string } func (f Flag) GetName() string { @@ -36,7 +37,16 @@ func (f Flag) GetIsRequired() bool { } func (f *Flag) IsSet(cmd *cobra.Command) bool { - return cmd.Flags().Changed(f.LongForm) + if cmd.Flags().Changed(f.LongForm) { + return true + } + // Check if any alias is set. + for _, alias := range f.AlsoKnownAs { + if cmd.Flags().Changed(alias) { + return true + } + } + return false } func (f *Flag) Ask(cmd *cobra.Command, value interface{}, defaultValue *string) error { @@ -254,6 +264,16 @@ func openEditorFlag(cmd *cobra.Command, f *Flag, value *string, defaultValue str func registerString(cmd *cobra.Command, f *Flag, value *string, defaultValue string, isUpdate bool) { cmd.Flags().StringVarP(value, f.LongForm, f.ShortForm, defaultValue, f.Help) + // Set up flag aliases if specified. + if len(f.AlsoKnownAs) > 0 { + flag := cmd.Flags().Lookup(f.LongForm) + if flag != nil { + for _, alias := range f.AlsoKnownAs { + cmd.Flags().StringVar(value, alias, defaultValue, f.Help) + } + } + } + if err := markFlagRequired(cmd, f, isUpdate); err != nil { panic(auth0.Error(err, "failed to register string flag")) } @@ -262,6 +282,16 @@ func registerString(cmd *cobra.Command, f *Flag, value *string, defaultValue str func registerStringSlice(cmd *cobra.Command, f *Flag, value *[]string, defaultValue []string, isUpdate bool) { cmd.Flags().StringSliceVarP(value, f.LongForm, f.ShortForm, defaultValue, f.Help) + // Set up flag aliases if specified. + if len(f.AlsoKnownAs) > 0 { + flag := cmd.Flags().Lookup(f.LongForm) + if flag != nil { + for _, alias := range f.AlsoKnownAs { + cmd.Flags().StringSliceVar(value, alias, defaultValue, f.Help) + } + } + } + if err := markFlagRequired(cmd, f, isUpdate); err != nil { panic(auth0.Error(err, "failed to register string slice flag")) } @@ -270,6 +300,16 @@ func registerStringSlice(cmd *cobra.Command, f *Flag, value *[]string, defaultVa func registerStringMap(cmd *cobra.Command, f *Flag, value *map[string]string, defaultValue map[string]string, isUpdate bool) { cmd.Flags().StringToStringVarP(value, f.LongForm, f.ShortForm, defaultValue, f.Help) + // Set up flag aliases if specified. + if len(f.AlsoKnownAs) > 0 { + flag := cmd.Flags().Lookup(f.LongForm) + if flag != nil { + for _, alias := range f.AlsoKnownAs { + cmd.Flags().StringToStringVar(value, alias, defaultValue, f.Help) + } + } + } + if err := markFlagRequired(cmd, f, isUpdate); err != nil { panic(auth0.Error(err, "failed to register string map flag")) } @@ -278,6 +318,16 @@ func registerStringMap(cmd *cobra.Command, f *Flag, value *map[string]string, de func registerInt(cmd *cobra.Command, f *Flag, value *int, defaultValue int, isUpdate bool) { cmd.Flags().IntVarP(value, f.LongForm, f.ShortForm, defaultValue, f.Help) + // Set up flag aliases if specified. + if len(f.AlsoKnownAs) > 0 { + flag := cmd.Flags().Lookup(f.LongForm) + if flag != nil { + for _, alias := range f.AlsoKnownAs { + cmd.Flags().IntVar(value, alias, defaultValue, f.Help) + } + } + } + if err := markFlagRequired(cmd, f, isUpdate); err != nil { panic(auth0.Error(err, "failed to register int flag")) } @@ -286,6 +336,16 @@ func registerInt(cmd *cobra.Command, f *Flag, value *int, defaultValue int, isUp func registerIntSlice(cmd *cobra.Command, f *Flag, value *[]int, defaultValue []int, isUpdate bool) { cmd.Flags().IntSliceVarP(value, f.LongForm, f.ShortForm, defaultValue, f.Help) + // Set up flag aliases if specified. + if len(f.AlsoKnownAs) > 0 { + flag := cmd.Flags().Lookup(f.LongForm) + if flag != nil { + for _, alias := range f.AlsoKnownAs { + cmd.Flags().IntSliceVar(value, alias, defaultValue, f.Help) + } + } + } + if err := markFlagRequired(cmd, f, isUpdate); err != nil { panic(auth0.Error(err, "failed to register int slice flag")) } @@ -330,6 +390,16 @@ func askIntSlice(i commandInput, value *[]int, defaultValue *[]int) error { func registerBool(cmd *cobra.Command, f *Flag, value *bool, defaultValue bool, isUpdate bool) { cmd.Flags().BoolVarP(value, f.LongForm, f.ShortForm, defaultValue, f.Help) + // Set up flag aliases if specified. + if len(f.AlsoKnownAs) > 0 { + flag := cmd.Flags().Lookup(f.LongForm) + if flag != nil { + for _, alias := range f.AlsoKnownAs { + cmd.Flags().BoolVar(value, alias, defaultValue, f.Help) + } + } + } + if err := markFlagRequired(cmd, f, isUpdate); err != nil { panic(auth0.Error(err, "failed to register bool flag")) } diff --git a/internal/cli/roles_permissions.go b/internal/cli/roles_permissions.go index 217534384..799fceaa8 100644 --- a/internal/cli/roles_permissions.go +++ b/internal/cli/roles_permissions.go @@ -13,11 +13,12 @@ import ( var ( roleAPIIdentifier = Flag{ - Name: "API", - LongForm: "api-id", - ShortForm: "a", - Help: "API Identifier.", - IsRequired: true, + Name: "API", + LongForm: "api-id", + ShortForm: "a", + Help: "API Identifier.", + IsRequired: true, + AlsoKnownAs: []string{"resource-server-identifier"}, } roleAPIPermissions = Flag{ @@ -138,7 +139,8 @@ func addRolePermissionsCmd(cli *cli) *cobra.Command { auth0 roles permissions add auth0 roles permissions add --api-id auth0 roles permissions add --api-id --permissions - auth0 roles permissions add -a -p `, + auth0 roles permissions add -a -p + auth0 roles permissions add --resource-server-identifier --permissions `, RunE: func(cmd *cobra.Command, args []string) error { if len(args) == 0 { if err := roleID.Pick(cmd, &inputs.ID, cli.rolePickerOptions); err != nil { @@ -203,7 +205,8 @@ func removeRolePermissionsCmd(cli *cli) *cobra.Command { Example: ` auth0 roles permissions remove auth0 roles permissions rm --api-id auth0 roles permissions rm --api-id --permissions - auth0 roles permissions rm -a -p `, + auth0 roles permissions rm -a -p + auth0 roles permissions rm --resource-server-identifier --permissions `, RunE: func(cmd *cobra.Command, args []string) error { if len(args) == 0 { if err := roleID.Pick(cmd, &inputs.ID, cli.rolePickerOptions); err != nil {