Skip to content

Commit

Permalink
Fixed the urls in PROPFIND, PROPPATCH and LOCK responses not being en…
Browse files Browse the repository at this point in the history
…coded
  • Loading branch information
AdrienCastex committed Jun 30, 2017
1 parent 2c609e7 commit 7bc8928
Show file tree
Hide file tree
Showing 6 changed files with 11 additions and 40 deletions.
2 changes: 1 addition & 1 deletion lib/server/v2/commands/Lock.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ function createResponse(ctx, lock) {
activelock.ele('D:locktype').ele(lock.lockKind.type.value);
activelock.ele('D:lockscope').ele(lock.lockKind.scope.value);
activelock.ele('D:locktoken').ele('D:href', undefined, true).add(lock.uuid);
activelock.ele('D:lockroot').ele('D:href', undefined, true).add(ctx.fullUri());
activelock.ele('D:lockroot').ele('D:href', undefined, true).add(encodeURI(ctx.fullUri()));
activelock.ele('D:depth').add(lock.depth === -1 ? 'infinity' : lock.depth.toString());
activelock.ele('D:owner').add(lock.owner);
activelock.ele('D:timeout').add('Second-' + lock.lockKind.timeout);
Expand Down
6 changes: 3 additions & 3 deletions lib/server/v2/commands/Propfind.js
Original file line number Diff line number Diff line change
Expand Up @@ -215,7 +215,7 @@ var default_1 = (function () {
activelock.ele('D:owner').add(lock.owner);
activelock.ele('D:timeout').add('Second-' + (lock.expirationDate - Date.now()));
activelock.ele('D:locktoken').ele('D:href', undefined, true).add(lock.uuid);
activelock.ele('D:lockroot').ele('D:href', undefined, true).add(ctx.fullUri(path).replace(' ', '%20'));
activelock.ele('D:lockroot').ele('D:href', undefined, true).add(encodeURI(ctx.fullUri(path)));
}
}
nbOut(null);
Expand All @@ -228,7 +228,7 @@ var default_1 = (function () {
resource.fs.getFullPath(ctx, resource.path, function (e, path) {
if (e)
return nbOut(e);
var p = ctx.fullUri(path.toString()).replace(' ', '%20');
var p = encodeURI(ctx.fullUri(path.toString()));
var href = p.lastIndexOf('/') !== p.length - 1 && type.isDirectory ? p + '/' : p;
response.ele('D:href', undefined, true).add(href);
response.ele('D:location').ele('D:href', undefined, true).add(p);
Expand Down Expand Up @@ -263,7 +263,7 @@ var default_1 = (function () {
methodDisplayName = resource.displayName;
methodDisplayName.bind(resource)(function (e, name) { return process.nextTick(function () {
if (!e)
tags.displayname.el.add(name ? name : '');
tags.displayname.el.add(name ? encodeURI(name) : '');
nbOut(e);
}); });
});
Expand Down
2 changes: 1 addition & 1 deletion lib/server/v2/commands/Proppatch.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ var default_1 = (function () {
'xmlns:D': 'DAV:'
});
var response = multistatus.ele('D:response');
response.ele('D:href', undefined, true).add(ctx.fullUri());
response.ele('D:href', undefined, true).add(encodeURI(ctx.fullUri()));
try {
var xml = XML_1.XML.parse(data);
var root_1 = xml.find('DAV:propertyupdate');
Expand Down
2 changes: 1 addition & 1 deletion src/server/v2/commands/Lock.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ function createResponse(ctx : RequestContext, lock : Lock)
activelock.ele('D:locktype').ele(lock.lockKind.type.value);
activelock.ele('D:lockscope').ele(lock.lockKind.scope.value);
activelock.ele('D:locktoken').ele('D:href', undefined, true).add(lock.uuid);
activelock.ele('D:lockroot').ele('D:href', undefined, true).add(ctx.fullUri());
activelock.ele('D:lockroot').ele('D:href', undefined, true).add(encodeURI(ctx.fullUri()));
activelock.ele('D:depth').add(lock.depth === -1 ? 'infinity' : lock.depth.toString());
activelock.ele('D:owner').add(lock.owner);
activelock.ele('D:timeout').add('Second-' + lock.lockKind.timeout);
Expand Down
37 changes: 4 additions & 33 deletions src/server/v2/commands/Propfind.ts
Original file line number Diff line number Diff line change
Expand Up @@ -325,36 +325,7 @@ export default class implements HTTPMethod
})

displayValue('lockdiscovery', () =>
{/*
++nb;
lockDiscovery(lockDiscoveryCache, ctx, resource.path, resource, (e, l) => {
if(e)
{
nbOut(e);
return;
}
for(const path in l)
{
for(const _lock of l[path])
{
const lock : Lock = _lock;
const activelock = tags.lockdiscovery.el.ele('D:activelock');
activelock.ele('D:lockscope').ele('D:' + lock.lockKind.scope.value.toLowerCase())
activelock.ele('D:locktype').ele('D:' + lock.lockKind.type.value.toLowerCase())
activelock.ele('D:depth').add('Infinity')
if(lock.owner)
activelock.ele('D:owner').add(lock.owner)
activelock.ele('D:timeout').add('Second-' + (lock.expirationDate - Date.now()))
activelock.ele('D:locktoken').ele('D:href', undefined, true).add(lock.uuid)
activelock.ele('D:lockroot').ele('D:href', undefined, true).add(ctx.fullUri(path).replace(' ', '%20'))
}
}
nbOut(null);
})*/

{
resource.listDeepLocks((e, locks) => {
if(e)
return nbOut(e);
Expand All @@ -373,7 +344,7 @@ export default class implements HTTPMethod
activelock.ele('D:owner').add(lock.owner)
activelock.ele('D:timeout').add('Second-' + (lock.expirationDate - Date.now()))
activelock.ele('D:locktoken').ele('D:href', undefined, true).add(lock.uuid)
activelock.ele('D:lockroot').ele('D:href', undefined, true).add(ctx.fullUri(path).replace(' ', '%20'))
activelock.ele('D:lockroot').ele('D:href', undefined, true).add(encodeURI(ctx.fullUri(path)))
}
}

Expand All @@ -390,7 +361,7 @@ export default class implements HTTPMethod
if(e)
return nbOut(e);

const p = ctx.fullUri(path.toString()).replace(' ', '%20');
const p = encodeURI(ctx.fullUri(path.toString()));
const href = p.lastIndexOf('/') !== p.length - 1 && type.isDirectory ? p + '/' : p;
response.ele('D:href', undefined, true).add(href);
response.ele('D:location').ele('D:href', undefined, true).add(p);
Expand Down Expand Up @@ -436,7 +407,7 @@ export default class implements HTTPMethod

methodDisplayName.bind(resource)((e, name) => process.nextTick(() => {
if(!e)
tags.displayname.el.add(name ? name : '');
tags.displayname.el.add(name ? encodeURI(name) : '');
nbOut(e);
}))
})
Expand Down
2 changes: 1 addition & 1 deletion src/server/v2/commands/Proppatch.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ export default class implements HTTPMethod
'xmlns:D': 'DAV:'
});
const response = multistatus.ele('D:response');
response.ele('D:href', undefined, true).add(ctx.fullUri());
response.ele('D:href', undefined, true).add(encodeURI(ctx.fullUri()));

try
{
Expand Down

0 comments on commit 7bc8928

Please sign in to comment.