From 943b4c75aa737226e48da4dc04d14899fb16a9d2 Mon Sep 17 00:00:00 2001 From: James Read Date: Mon, 1 Jul 2024 09:31:53 +0100 Subject: [PATCH] feature: Password type (no validation) (#340) --- internal/executor/arguments.go | 27 ++++++++++++++++----------- webui.dev/js/ArgumentForm.js | 3 +++ 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/internal/executor/arguments.go b/internal/executor/arguments.go index aa23128..294b5b8 100644 --- a/internal/executor/arguments.go +++ b/internal/executor/arguments.go @@ -122,23 +122,28 @@ func typecheckChoiceEntity(value string, arg *config.ActionArgument) error { // defined in typecheckRegex, and, you guessed it, uses regex to check for allowed // characters. func TypeSafetyCheck(name string, value string, argumentType string) error { - if argumentType == "url" { - return typeSafetyCheckUrl(name, value) - } - - if argumentType == "datetime" { - _, err := time.Parse("2006-01-02T15:04:05", value) - - if err != nil { - return err - } - + switch argumentType { + case "password": return nil + case "url": + return typeSafetyCheckUrl(name, value) + case "datetime": + return typeSafetyCheckDatetime(name, value) } return typeSafetyCheckRegex(name, value, argumentType) } +func typeSafetyCheckDatetime(name string, value string) error { + _, err := time.Parse("2006-01-02T15:04:05", value) + + if err != nil { + return err + } + + return nil +} + func typeSafetyCheckRegex(name string, value string, argumentType string) error { pattern := "" diff --git a/webui.dev/js/ArgumentForm.js b/webui.dev/js/ArgumentForm.js index b24aad3..6066a92 100644 --- a/webui.dev/js/ArgumentForm.js +++ b/webui.dev/js/ArgumentForm.js @@ -130,6 +130,9 @@ class ArgumentForm extends window.HTMLElement { domEl = document.createElement('input') domEl.setAttribute('type', 'datetime-local') domEl.setAttribute('step', '1') + } else if (arg.type === 'password') { + domEl = document.createElement('input') + domEl.setAttribute('type', 'password') } else { domEl = document.createElement('input')