Skip to content

Commit

Permalink
Removed the empty 'requirePrivilege' methods in the 'RequestContext' …
Browse files Browse the repository at this point in the history
…class + Added the 'setCodeFromError' method and the 'defaultStatusCode' method to the 'RequestContext' class
  • Loading branch information
AdrienCastex committed Jun 28, 2017
1 parent f488ecc commit 8cf9a53
Show file tree
Hide file tree
Showing 3 changed files with 62 additions and 46 deletions.
7 changes: 2 additions & 5 deletions lib/server/v2/RequestContext.d.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
/// <reference types="node" />
import { BasicPrivilege } from '../../user/v2/privilege/IPrivilegeManager';
import { XMLElement } from '../../helper/XML';
import { WebDAVServer } from './webDAVServer/WebDAVServer';
import { FileSystem } from '../../manager/v2/fileSystem/FileSystem';
Expand Down Expand Up @@ -52,16 +51,14 @@ export declare class RequestContext {
noBodyExpected(callback: () => void): void;
checkIfHeader(resource: Resource, callback: () => void): any;
checkIfHeader(fs: FileSystem, path: Path, callback: () => void): any;
requirePrivilegeEx(privileges: BasicPrivilege | BasicPrivilege[], callback: () => void): any;
requirePrivilegeEx(privileges: string | string[], callback: () => void): any;
requirePrivilege(privileges: BasicPrivilege | BasicPrivilege[], callback: (error: Error, can: boolean) => void): any;
requirePrivilege(privileges: string | string[], callback: (error: Error, can: boolean) => void): any;
askForAuthentication(checkForUser: boolean, callback: (error: Error) => void): void;
getResource(callback: ReturnCallback<Resource>): any;
getResource(path: Path | string, callback: ReturnCallback<Resource>): any;
fullUri(uri?: string): string;
prefixUri(): string;
writeBody(xmlObject: XMLElement | object): void;
setCode(code: number, message?: string): void;
defaultStatusCode(error: Error): number;
setCodeFromError(error: Error): boolean;
}
export default RequestContext;
34 changes: 27 additions & 7 deletions lib/server/v2/RequestContext.js
Original file line number Diff line number Diff line change
Expand Up @@ -173,13 +173,6 @@ var RequestContext = (function () {
callback();
});
};
RequestContext.prototype.requirePrivilegeEx = function (privileges, callback) {
callback();
};
RequestContext.prototype.requirePrivilege = function (privileges, callback) {
//requirePrivilege(privileges, this, resource, callback);
callback(null, true);
};
RequestContext.prototype.askForAuthentication = function (checkForUser, callback) {
if (checkForUser && this.user !== null && !this.user.isDefaultUser) {
callback(Errors_1.Errors.AlreadyAuthenticated);
Expand Down Expand Up @@ -277,6 +270,33 @@ var RequestContext = (function () {
this.response.statusMessage = message;
}
};
RequestContext.prototype.defaultStatusCode = function (error) {
var code = null;
if (error === Errors_1.Errors.ResourceNotFound)
code = HTTPCodes_1.HTTPCodes.NotFound;
else if (error === Errors_1.Errors.Locked)
code = HTTPCodes_1.HTTPCodes.Locked;
else if (error === Errors_1.Errors.BadAuthentication)
code = HTTPCodes_1.HTTPCodes.Unauthorized;
else if (error === Errors_1.Errors.NotEnoughPrivilege)
code = HTTPCodes_1.HTTPCodes.Unauthorized;
else if (error === Errors_1.Errors.ResourceAlreadyExists)
code = HTTPCodes_1.HTTPCodes.Conflict;
else if (error === Errors_1.Errors.IntermediateResourceMissing)
code = HTTPCodes_1.HTTPCodes.Conflict;
else if (error === Errors_1.Errors.WrongParentTypeForCreation)
code = HTTPCodes_1.HTTPCodes.Conflict;
else if (error === Errors_1.Errors.InsufficientStorage)
code = HTTPCodes_1.HTTPCodes.InsufficientStorage;
return code;
};
RequestContext.prototype.setCodeFromError = function (error) {
var code = this.defaultStatusCode(error);
if (!code)
return false;
this.setCode(code);
return true;
};
return RequestContext;
}());
exports.RequestContext = RequestContext;
Expand Down
67 changes: 33 additions & 34 deletions src/server/v2/RequestContext.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
//import { IResource, ReturnCallback, ResourceType } from '../../resource/IResource'
import { requirePrivilege, BasicPrivilege } from '../../user/v2/privilege/IPrivilegeManager'
import { EventsName, DetailsType } from './webDAVServer/Events'
import { XML, XMLElement } from '../../helper/XML'
import { parseIfHeader } from '../../helper/v2/IfParser'
Expand Down Expand Up @@ -255,38 +253,6 @@ export class RequestContext
});
}

requirePrivilegeEx(privileges : BasicPrivilege | BasicPrivilege[], callback : () => void)
requirePrivilegeEx(privileges : string | string[], callback : () => void)
requirePrivilegeEx(privileges : BasicPrivilege | BasicPrivilege[] | BasicPrivilege | BasicPrivilege[], callback : () => void)
{/*
requirePrivilege(privileges, this, resource, (e, can) => {
if(e)
{
this.setCode(HTTPCodes.InternalServerError);
this.exit();
return;
}
if(!can)
{
this.setCode(HTTPCodes.Unauthorized);
this.exit();
return;
}
callback();
});*/
callback();
}

requirePrivilege(privileges : BasicPrivilege | BasicPrivilege[], callback : (error : Error, can : boolean) => void)
requirePrivilege(privileges : string | string[], callback : (error : Error, can : boolean) => void)
requirePrivilege(privileges : BasicPrivilege | BasicPrivilege[] | BasicPrivilege | BasicPrivilege[], callback : (error : Error, can : boolean) => void)
{
//requirePrivilege(privileges, this, resource, callback);
callback(null, true);
}

askForAuthentication(checkForUser : boolean, callback : (error : Error) => void)
{
if(checkForUser && this.user !== null && !this.user.isDefaultUser)
Expand Down Expand Up @@ -406,5 +372,38 @@ export class RequestContext
this.response.statusMessage = message;
}
}
defaultStatusCode(error : Error) : number
{
let code = null;

if(error === Errors.ResourceNotFound)
code = HTTPCodes.NotFound;
else if(error === Errors.Locked)
code = HTTPCodes.Locked;
else if(error === Errors.BadAuthentication)
code = HTTPCodes.Unauthorized;
else if(error === Errors.NotEnoughPrivilege)
code = HTTPCodes.Unauthorized;
else if(error === Errors.ResourceAlreadyExists)
code = HTTPCodes.Conflict;
else if(error === Errors.IntermediateResourceMissing)
code = HTTPCodes.Conflict;
else if(error === Errors.WrongParentTypeForCreation)
code = HTTPCodes.Conflict;
else if(error === Errors.InsufficientStorage)
code = HTTPCodes.InsufficientStorage;

return code;
}
setCodeFromError(error : Error) : boolean
{
const code = this.defaultStatusCode(error);

if(!code)
return false;

this.setCode(code);
return true;
}
}
export default RequestContext;

0 comments on commit 8cf9a53

Please sign in to comment.