Skip to content

Commit d5ec035

Browse files
committed
Create workaround for credentials not saved
1 parent 9eabc3f commit d5ec035

3 files changed

Lines changed: 36 additions & 13 deletions

File tree

OpenFlow/src/DatabaseConnection.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -570,13 +570,13 @@ export class DatabaseConnection {
570570
if (u.username == null || u.username == "") { throw new Error("Username is mandatory"); }
571571
if (u.name == null || u.name == "") { throw new Error("Name is mandatory"); }
572572
var exists = await User.FindByUsername(u.username, TokenUser.rootToken());
573-
if (exists != null) { throw new Error("Access denied, user already exists"); }
573+
if (exists != null) { throw new Error("Access denied, user '" + u.username + "' already exists"); }
574574
}
575575
if (collectionname === "users" && item._type === "role") {
576576
var r: Role = (item as any);
577577
if (r.name == null || r.name == "") { throw new Error("Name is mandatory"); }
578578
var exists2 = await Role.FindByName(r.name);
579-
if (exists2 != null) { throw new Error("Access denied, role already exists"); }
579+
if (exists2 != null) { throw new Error("Access denied, role '" + r.name + "' already exists"); }
580580
}
581581

582582
// var options:CollectionInsertOneOptions = { writeConcern: { w: parseInt((w as any)), j: j } };

OpenFlowNodeRED/src/node-red-contrib-openflow-storage.ts

Lines changed: 33 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,15 @@ export class noderedcontribopenflowstorage {
109109
var result = await NoderedUtil.Query("nodered", { _type: "credential", nodered_id: Config.nodered_id }, null, null, 1, 0, null);
110110
if (result.length === 0) { return []; }
111111
var cred: any = result[0].credentials;
112+
var arr: any = result[0].credentialsarray;
113+
if (arr !== null && arr !== undefined) {
114+
cred = {};
115+
for (var i = 0; i < arr.length; i++) {
116+
var key = arr[i].key;
117+
var value = arr[i].value;
118+
cred[key] = value;
119+
}
120+
}
112121
return cred;
113122
} catch (error) {
114123
if (error.message) { this._logger.error(error.message); }
@@ -121,17 +130,31 @@ export class noderedcontribopenflowstorage {
121130
try {
122131
this._logger.silly("noderedcontribopenflowstorage::_saveCredentials");
123132
var result = await NoderedUtil.Query("nodered", { _type: "credential", nodered_id: Config.nodered_id }, null, null, 1, 0, null);
124-
if (result.length === 0) {
125-
var item: any = {
126-
name: "credentials for " + Config.nodered_id,
127-
credentials: credentials, _type: "credential", nodered_id: Config.nodered_id,
128-
_encrypt: ["credentials"]
129-
};
130-
await NoderedUtil.InsertOne("nodered", item, 1, true, null);
131-
} else {
132-
result[0].credentials = credentials;
133-
await NoderedUtil._UpdateOne("nodered", null, result[0], 1, true, null);
133+
134+
var credentialsarray = [];
135+
var orgkeys = Object.keys(credentials);
136+
for (var i = 0; i < orgkeys.length; i++) {
137+
var key = orgkeys[i];
138+
var value = credentials[key];
139+
var obj = { key: key, value: value };
140+
credentialsarray.push(obj);
134141
}
142+
if (credentials)
143+
if (result.length === 0) {
144+
var item: any = {
145+
name: "credentials for " + Config.nodered_id,
146+
credentials: credentials, credentialsarray: credentialsarray, _type: "credential", nodered_id: Config.nodered_id,
147+
_encrypt: ["credentials"]
148+
};
149+
var subresult = await NoderedUtil.InsertOne("nodered", item, 1, true, null);
150+
console.log(subresult);
151+
} else {
152+
var item: any = result[0];
153+
item.credentials = credentials;
154+
item.credentialsarray = credentialsarray;
155+
var subresult = await NoderedUtil._UpdateOne("nodered", null, item, 1, true, null);
156+
console.log(subresult);
157+
}
135158
} catch (error) {
136159
if (error.message) { this._logger.error(error.message); }
137160
else { this._logger.error(error); }

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0.0.518
1+
0.0.519

0 commit comments

Comments
 (0)