diff --git a/CHANGELOG.md b/CHANGELOG.md
index f56f72c..91bad3e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,11 +1,20 @@
# node-red-contrib-nextcloud changelog
-## 0.1,1
+## 0.1.3
+_2019-08-04_
+* security fixes and package updates
+
+## 0.1.2
_2018-11-11_
* merged pull request
* fixed errors parsing caldav events
* switched to ical-expander parser
+## 0.1.1
+_2018-05-01
+* added checkbox to accept self signed server certificates to credentials
+* added support for self signed certificates to WebDAV nodes (needs [webdav](https://github.com/perry-mitchell/webdav-client) package to be updated to 1.5.3 or newer)
+* removed debug output in node WebDAV list
## 0.1.0
_2018-04-30_
diff --git a/nextcloud.html b/nextcloud.html
index db60c34..905c8fe 100644
--- a/nextcloud.html
+++ b/nextcloud.html
@@ -3,7 +3,8 @@
category: 'config',
defaults: {
cname: {value: '', required: false},
- address: {value: 'https://your.server.com', required: true}
+ address: {value: 'https://your.server.com', required: true},
+ insecure: {value: '', required: false}
},
credentials: {
user: {type:'text'},
@@ -27,6 +28,12 @@
+
+
+
+ Accept self signed certificates
+
@@ -379,4 +386,4 @@
timeout number
Should be 0 in case of success
-
\ No newline at end of file
+
diff --git a/nextcloud.js b/nextcloud.js
index c738453..8e32616 100644
--- a/nextcloud.js
+++ b/nextcloud.js
@@ -4,10 +4,12 @@ module.exports = function (RED) {
const fs = require('fs')
const IcalExpander = require('ical-expander')
const moment = require('moment')
+ const https = require('https')
function NextcloudConfigNode (config) {
RED.nodes.createNode(this, config)
this.address = config.address
+ this.insecure = n.insecure
}
RED.nodes.registerType('nextcloud-credentials', NextcloudConfigNode, {
credentials: {
@@ -197,7 +199,12 @@ module.exports = function (RED) {
}
directory = directory.replace('//', '/')
- client.getDirectoryContents(directory)
+ // check option for self signed certs
+ const option = {}
+ if (node.server.insecure) {
+ option.agent = new https.Agent({ rejectUnauthorized: false })
+ }
+ client.getDirectoryContents(directory, option)
.then(function (contents) {
node.send({ 'payload': contents })
}, function (error) {
@@ -226,8 +233,13 @@ module.exports = function (RED) {
return
}
filename = filename.replace('//', '/')
- node.warn(filename)
- client.getFileContents(filename)
+
+ // check option for self signed certs
+ const option = {}
+ if (node.server.insecure) {
+ option.agent = new https.Agent({ rejectUnauthorized: false })
+ }
+ client.getFileContents(filename, option)
.then(function (contents) {
node.send({ 'payload': contents })
}, function (error) {
@@ -264,7 +276,13 @@ module.exports = function (RED) {
const webDavUri = node.server.address + '/remote.php/webdav/'
const client = webdav(webDavUri, node.server.credentials.user, node.server.credentials.pass)
- client.putFileContents(directory + name, file, { format: 'binary' })
+ // check option for self signed certs
+ const option = {}
+ if (node.server.insecure) {
+ option.agent = new https.Agent({ rejectUnauthorized: false })
+ }
+
+ client.putFileContents(directory + name, file, { format: 'binary' }, option)
.then(function (contents) {
console.log(contents)
node.send({ 'payload': JSON.parse(contents) })
diff --git a/package.json b/package.json
index 09a4ce0..b5d52c7 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "node-red-contrib-nextcloud",
- "version": "0.1.2",
+ "version": "0.1.3",
"description": "Collection of node-red nodes to download Calendars (CalDAV) and Contacts (CardDAV) and up- / download / list files (WebDAV) from / to nextcloud",
"main": "nextcloud.js",
"node-red": {
@@ -19,15 +19,15 @@
"dependencies": {
"dav": "^1.8.0",
"ical-expander": "^2.0.0",
- "moment": "^2.22.2",
- "webdav": "^1.6.1"
+ "moment": "^2.24.0",
+ "webdav": "^2.9.1"
},
"devDependencies": {
- "eslint": "^5.6.0",
+ "eslint": "^5.16.0",
"eslint-config-standard": "^12.0.0",
- "eslint-plugin-import": "^2.14.0",
+ "eslint-plugin-import": "^2.18.2",
"eslint-plugin-node": "^7.0.1",
- "eslint-plugin-promise": "^4.0.1",
+ "eslint-plugin-promise": "^4.2.1",
"eslint-plugin-standard": "^4.0.0"
},
"scripts": {