Skip to content

Commit 004b294

Browse files
committed
Merge branch 'master' of github.com:ajaxorg/cloud9
2 parents dfcb8f0 + 8d4b8dc commit 004b294

File tree

2 files changed

+18
-4
lines changed

2 files changed

+18
-4
lines changed

plugins-server/cloud9.core/workspace.js

+9-2
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,20 @@ var Workspace = module.exports = function(ide) {
2222
};
2323

2424
this.getServerExclude = function(user) {
25-
return util.arrayToMap(user.getPermissions().server_exclude.split("|"));
25+
// We assume `user` has been passed. Otherwise it is fine to throw.
26+
if (!user.permissions) {
27+
console.error("Error: Couldn't retrieve permissions for user ", user);
28+
console.trace();
29+
}
30+
31+
var serverExclude = (user.permissions && user.permissions.server_exclude) || "";
32+
return util.arrayToMap(serverExclude.split("|"));
2633
};
2734

2835
this.execHook = function(hook, user /* varargs */) {
2936
var self = this;
3037
var args = Array.prototype.slice.call(arguments, 1);
31-
var hook = hook.toLowerCase().trim();
38+
hook = hook.toLowerCase().trim();
3239

3340
var server_exclude = this.getServerExclude(user);
3441

plugins-server/cloud9.ide.run-npm-module/run-npm-module.js

+9-2
Original file line numberDiff line numberDiff line change
@@ -100,12 +100,19 @@ util.inherits(NpmRuntimePlugin, Plugin);
100100
this.searchAndRunModuleHook = function(message, user, cb) {
101101
if (!message.command || !message.argv)
102102
return cb(null, false);
103+
104+
if (!user || !user.permissions) {
105+
console.error("Error: Couldn't retrieve permissions for user ", user);
106+
console.trace();
107+
}
103108

104-
if (user.permissions.fs != "rw")
109+
if (user.permissions && user.permissions.fs != "rw") {
105110
return cb("Permission denied", false);
111+
}
106112

107113
// server_exclude is usually empty, resulting in an array with one element: an empty one, let's filter those:
108-
var server_exclude = (user.permissions.server_exclude || "").split("|").filter(function(cmd) { return !!cmd });
114+
var server_excludeString = (user.permissions && user.permissions.server_exclude) || "";
115+
var server_exclude = server_excludeString.split("|").filter(function(cmd) { return !!cmd; });
109116
server_exclude.forEach(function(command) {
110117
if (message.command == command || message.argv.join(" ").indexOf(command) > -1) {
111118
return cb("Permission denied", false);

0 commit comments

Comments
 (0)