Skip to content

Commit

Permalink
Centralized the 'source' header check in the 'MethodCallArgs' class
Browse files Browse the repository at this point in the history
  • Loading branch information
AdrienCastex committed Jun 10, 2017
1 parent 2d9627e commit 163914f
Show file tree
Hide file tree
Showing 9 changed files with 11 additions and 10 deletions.
1 change: 1 addition & 0 deletions lib/server/MethodCallArgs.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ var MethodCallArgs = (function () {
this.exit = exit;
this.callback = callback;
this.contentLength = parseInt(this.findHeader('Content-length', '0'), 10);
this.isSource = this.findHeader('source', 'F').toUpperCase() === 'T' || this.findHeader('translate', 'F').toUpperCase() === 'T';
this.depth = parseInt(this.findHeader('Depth', '0'), 10);
this.host = this.findHeader('Host');
this.uri = url.parse(request.url).pathname;
Expand Down
2 changes: 1 addition & 1 deletion lib/server/commands/Get.js
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ function default_1(arg, callback) {
return;
}
arg.checkIfHeader(r, function () {
var targetSource = arg.findHeader('source', 'F').toUpperCase() === 'T';
var targetSource = arg.isSource;
arg.requirePrivilege(targetSource ? ['canRead', 'canSource'] : ['canRead'], r, function () {
r.read(targetSource, function (e, rstream) { return process.nextTick(function () {
if (e) {
Expand Down
2 changes: 1 addition & 1 deletion lib/server/commands/Head.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ function default_1(arg, callback) {
callback();
return;
}
var targetSource = arg.findHeader('source', 'F').toUpperCase() === 'T';
var targetSource = arg.isSource;
arg.checkIfHeader(r, function () {
arg.requirePrivilege(targetSource ? ['canRead', 'canSource'] : ['canRead'], r, function () {
r.type(function (e, type) {
Expand Down
2 changes: 1 addition & 1 deletion lib/server/commands/Propfind.js
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ function default_1(arg, callback) {
}
var lockDiscoveryCache = {};
arg.checkIfHeader(resource, function () {
var targetSource = arg.findHeader('source', 'F').toUpperCase() === 'T';
var targetSource = arg.isSource;
var multistatus = XML_1.XML.createElement('D:multistatus', {
'xmlns:D': 'DAV:'
});
Expand Down
4 changes: 2 additions & 2 deletions lib/server/commands/Put.js
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ function createResource(arg, callback, validCallback) {
});
}
function unchunkedMethod(arg, callback) {
var targetSource = arg.findHeader('source', 'F').toUpperCase() === 'T';
var targetSource = arg.isSource;
arg.getResource(function (e, r) {
if (e && e !== Errors_1.Errors.ResourceNotFound) {
arg.setCode(WebDAVRequest_1.HTTPCodes.InternalServerError);
Expand Down Expand Up @@ -121,7 +121,7 @@ function unchunkedMethod(arg, callback) {
}
exports.default = unchunkedMethod;
unchunkedMethod.chunked = function (arg, callback) {
var targetSource = arg.findHeader('source', 'F').toUpperCase() === 'T';
var targetSource = arg.isSource;
arg.getResource(function (e, r) {
if (e && e !== Errors_1.Errors.ResourceNotFound) {
arg.setCode(WebDAVRequest_1.HTTPCodes.InternalServerError);
Expand Down
2 changes: 1 addition & 1 deletion src/server/commands/Get.ts
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ export default function(arg : MethodCallArgs, callback)
}

arg.checkIfHeader(r, () => {
const targetSource = arg.findHeader('source', 'F').toUpperCase() === 'T';
const targetSource = arg.isSource;

arg.requirePrivilege(targetSource ? [ 'canRead', 'canSource' ] : [ 'canRead' ], r, () => {
r.read(targetSource, (e, rstream) => process.nextTick(() => {
Expand Down
2 changes: 1 addition & 1 deletion src/server/commands/Head.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ export default function(arg : MethodCallArgs, callback)
return;
}

const targetSource = arg.findHeader('source', 'F').toUpperCase() === 'T';
const targetSource = arg.isSource;

arg.checkIfHeader(r, () => {
arg.requirePrivilege(targetSource ? [ 'canRead', 'canSource' ] : [ 'canRead' ], r, () => {
Expand Down
2 changes: 1 addition & 1 deletion src/server/commands/Propfind.ts
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ export default function(arg : MethodCallArgs, callback)
const lockDiscoveryCache = {};

arg.checkIfHeader(resource, () => {
const targetSource = arg.findHeader('source', 'F').toUpperCase() === 'T';
const targetSource = arg.isSource;

const multistatus = XML.createElement('D:multistatus', {
'xmlns:D': 'DAV:'
Expand Down
4 changes: 2 additions & 2 deletions src/server/commands/Put.ts
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ function createResource(arg : MethodCallArgs, callback, validCallback : (resourc

export default function unchunkedMethod(arg : MethodCallArgs, callback)
{
const targetSource = arg.findHeader('source', 'F').toUpperCase() === 'T';
const targetSource = arg.isSource;

arg.getResource((e, r) => {
if(e && e !== Errors.ResourceNotFound)
Expand Down Expand Up @@ -148,7 +148,7 @@ export default function unchunkedMethod(arg : MethodCallArgs, callback)

(unchunkedMethod as WebDAVRequest).chunked = function(arg : MethodCallArgs, callback)
{
const targetSource = arg.findHeader('source', 'F').toUpperCase() === 'T';
const targetSource = arg.isSource;

arg.getResource((e, r) => {
if(e && e !== Errors.ResourceNotFound)
Expand Down

0 comments on commit 163914f

Please sign in to comment.