(cli *cli)
| 1210 | } |
| 1211 | |
| 1212 | func appsSessionTransferUpdateCmd(cli *cli) *cobra.Command { |
| 1213 | var inputs struct { |
| 1214 | ID string |
| 1215 | CanCreateToken bool |
| 1216 | AllowedAuthMethods []string |
| 1217 | EnforceDeviceBinding string |
| 1218 | } |
| 1219 | |
| 1220 | cmd := &cobra.Command{ |
| 1221 | Use: "update", |
| 1222 | Args: cobra.MaximumNArgs(1), |
| 1223 | Short: "Update session transfer settings for an app", |
| 1224 | Example: ` auth0 apps session-transfer update |
| 1225 | auth0 apps session-transfer update <app-id> |
| 1226 | auth0 apps session-transfer update <app-id> --can-create-token --json |
| 1227 | auth0 apps session-transfer update <app-id> --can-create-token=true --allowed-auth-methods=cookie,query --enforce-device-binding=ip`, |
| 1228 | RunE: func(cmd *cobra.Command, args []string) error { |
| 1229 | if len(args) == 0 { |
| 1230 | err := appID.Pick(cmd, &inputs.ID, cli.appPickerOptions()) |
| 1231 | if err != nil { |
| 1232 | return err |
| 1233 | } |
| 1234 | } else { |
| 1235 | inputs.ID = args[0] |
| 1236 | } |
| 1237 | |
| 1238 | var ( |
| 1239 | current *management.Client |
| 1240 | st management.SessionTransfer |
| 1241 | ) |
| 1242 | |
| 1243 | if err := ansi.Waiting(func() (err error) { |
| 1244 | current, err = cli.api.Client.Read(cmd.Context(), inputs.ID) |
| 1245 | return err |
| 1246 | }); err != nil { |
| 1247 | return fmt.Errorf("failed to find application with ID %q: %w", inputs.ID, err) |
| 1248 | } |
| 1249 | |
| 1250 | if current.SessionTransfer == nil { |
| 1251 | current.SessionTransfer = &management.SessionTransfer{ |
| 1252 | CanCreateSessionTransferToken: auth0.Bool(false), |
| 1253 | AllowedAuthenticationMethods: &[]string{}, |
| 1254 | EnforceDeviceBinding: auth0.String("ip"), |
| 1255 | } |
| 1256 | } |
| 1257 | |
| 1258 | if err := appSTCanCreateToken.AskBoolU(cmd, &inputs.CanCreateToken, current.SessionTransfer.CanCreateSessionTransferToken); err != nil { |
| 1259 | return err |
| 1260 | } |
| 1261 | |
| 1262 | defaultVal := stringSliceToCommaSeparatedString(current.SessionTransfer.GetAllowedAuthenticationMethods()) |
| 1263 | if err := appSTAllowedAuthMethods.AskManyU(cmd, &inputs.AllowedAuthMethods, &defaultVal); err != nil { |
| 1264 | return err |
| 1265 | } |
| 1266 | |
| 1267 | if err := appSTEnforceDeviceBinding.SelectU(cmd, &inputs.EnforceDeviceBinding, []string{"none", "ip", "asn"}, current.SessionTransfer.EnforceDeviceBinding); err != nil { |
| 1268 | return err |
| 1269 | } |
no test coverage detected