Fix handling encrypted creds on /flows api

This commit is contained in:
Nick O'Leary
2021-03-06 20:27:51 +00:00
parent 101378c625
commit 99a9e3a91b
2 changed files with 21 additions and 11 deletions

View File

@@ -160,16 +160,22 @@ function setFlows(_config,_credentials,type,muteLog,forceStart,user) {
var credsDirty;
if (_credentials) {
credentials.clean(config);
// A full set of credentials have been provided. Use those instead
let credentialSavePromises = [];
for (let id in _credentials) {
if (_credentials.hasOwnProperty(id)) {
credentialSavePromises.push(credentials.add(id,_credentials[id]));
if (_credentials['$']) {
// this is a set of encrypted credentials - pass to load to decrypt
// the complete set
configSavePromise = credentials.load(_credentials);
} else {
credentials.clean(config);
// A full set of credentials have been provided. Use those instead
let credentialSavePromises = [];
for (let id in _credentials) {
if (_credentials.hasOwnProperty(id)) {
credentialSavePromises.push(credentials.add(id,_credentials[id]));
}
}
configSavePromise = Promise.all(credentialSavePromises);
credsDirty = true;
}
configSavePromise = Promise.all(credentialSavePromises);
credsDirty = true;
} else {
// Allow the credential store to remove anything no longer needed
credentials.clean(config);