Skip to content
Snippets Groups Projects
Commit bf93874e authored by Piotr Gawron's avatar Piotr Gawron
Browse files

when accessing map without privileges error info box is provided

parent b24efaa5
No related branches found
No related tags found
1 merge request!49Resolve "Handling security errors properly"
"use strict";
var logger = require('./logger');
var SecurityError = require('./SecurityError');
/**
* This static global object contains set of functions that returns/set data in
......@@ -122,7 +123,9 @@ GuiConnector.alert = function(error) {
}).siblings('.ui-dialog-titlebar').css("background", "red");
}
var message = error;
if (message instanceof Error) {
if (message instanceof SecurityError) {
message = error.message + "<p>Please <a href=\"login.xhtml\">login</a> to access this resuorce</p>";
} else if (message instanceof Error) {
message = "Unexpected error occured:<p>" + error.message + "</p>";
}
self._errorDialogContent.innerHTML = message;
......
......@@ -4,12 +4,14 @@
var logger = require('./logger');
var SecurityError = require("./SecurityError");
function InvalidCredentialsError(message) {
this.message = message;
this.stack = (new Error()).stack;
}
InvalidCredentialsError.prototype = Object.create(Error.prototype);
InvalidCredentialsError.prototype = Object.create(SecurityError.prototype);
InvalidCredentialsError.prototype.constructor = InvalidCredentialsError;
module.exports = InvalidCredentialsError;
"use strict";
/* exported logger */
var logger = require('./logger');
function SecurityError(message) {
this.message = message;
this.stack = (new Error()).stack;
}
SecurityError.prototype = Object.create(Error.prototype);
SecurityError.prototype.constructor = SecurityError;
module.exports = SecurityError;
......@@ -26,6 +26,7 @@ var NetworkError = require('./NetworkError');
var Project = require('./map/data/Project');
var Reaction = require('./map/data/Reaction');
var ReferenceGenome = require('./map/data/ReferenceGenome');
var SecurityError = require('./SecurityError');
var SessionData = require('./SessionData');
var User = require('./map/data/User');
......@@ -611,9 +612,16 @@ ServerConnector.getProject = function(projectId) {
}).then(function(overlays) {
project.getModel().addLayouts(overlays);
return project;
}).then(null, function(error){
if ((error instanceof NetworkError) && (error.statusCode === HttpStatus.NOT_FOUND)) {
return null;
}).then(null, function(error) {
if ((error instanceof NetworkError)) {
switch (error.statusCode) {
case HttpStatus.NOT_FOUND:
return null;
case HttpStatus.FORBIDDEN:
return Promise.reject(new SecurityError("Access denied."));
default:
return Promise.reject(error);
}
} else {
return Promise.reject(error);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment