Skip to content

Commit

Permalink
Merge pull request #6784 from rundeck/issue/pro1369
Browse files Browse the repository at this point in the history
Fix 1369: duplicate secure option doesn't work correctly
  • Loading branch information
gschueler committed Feb 13, 2021
2 parents 97066a3 + 5ef1a93 commit a30b305
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 1 deletion.
Expand Up @@ -998,7 +998,7 @@ class EditOptsController extends ControllerBase{
def newName = duplicateName(params.name, 1, editopts)
newOption.name = newName

def result = _applyOptionAction(editopts, [action: 'insert', name: newName, params: newOption.toMap()])
def result = _applyOptionAction(editopts, [action: 'insert', name: newName, params: _getParamsFromOption(newOption)])

return [actions: result, name: newName]
}
Expand Down
Expand Up @@ -721,5 +721,29 @@ class EditOptsControllerSpec extends HibernateSpec implements ControllerUnitTest
editopts.size() == 5


}
def "duplicate options secure"(){
given:
Option opt1 = new Option(name: 'abc', secureInput: true, secureExposed: true, defaultStoragePath: 'keys/asdf',required: true)
def opts = [opt1]
def editopts = opts.collectEntries { [it.name, it] }
controller.fileUploadService = Mock(FileUploadService)

params.scheduledExecutionId = 1L
params.name = "abc"
when:

def result = controller._duplicateOption(editopts)

then:
result.name == "abc_1"
result.actions.undo.action == "remove"
result.actions.undo.name == "abc_1"
def map1=opt1.toMap()
def map2=editopts['abc_1'].toMap()
map1.remove('name')
map2.remove('name')
map1==map2

}
}

0 comments on commit a30b305

Please sign in to comment.