Example #1
0
 SecurityManager.prototype.addHandler = function(name, handler) {
  if (!_validator.checkStringLength(name, 1024)) {
    throw new Error("name");
  }
  else if ("function" !== typeof handler) {
    throw new Error("handler");
  }
  else if (_handlers[name]) {
    throw new Error("Handler already defined: " + name);
  }
  else {
    _handlers[name] = handler;
  }
};
Example #2
0
 SecurityManager.prototype.addIdCheckers = function(name, checker) {
  if (!_validator.checkStringLength(name, 1024)) {
    throw new Error("name");
  }
  else if ("function" !== typeof checker) {
    throw new Error("checker");
  }
  else if (_idCheckers[name]) {
    throw new Error("Id checker already defined: " + name);
  }
  else {
    _idCheckers[name] = checker;
  }
};
Example #3
0
 SecurityManager.prototype.isGranted = function(parameters) {

  var handler = null;

  if (!_validator.isNumber(parameters.action, 0)) {
    throw new Error("parameters.action");
  }
  if (!_validator.checkStringLength(parameters.whoId, 12) &&
           !_validator.isNumber(parameters.whoId, 0) &&
           !_validator.isUUID(parameters.whoId)) {
    throw new Error("parameters.whoId");
  }
  if (!_validator.checkStringLength(parameters.whoType, 1024)) {
    throw new Error("parameters.whoType");
  }
  if (!_validator.isNumber(parameters.whatId, 0) && !_validator.isUUID(parameters.whatId) && !_validator.checkStringLength(parameters.whatId, 1024)) {
    throw new Error("parameters.whatId");
  }
  if (!_validator.checkStringLength(parameters.whatType, 1024)) {
    throw new Error("parameters.whatType");
  }
  if (!_validator.isObject(parameters.session, false, false)) {
    throw new Error("parameters.session");
  }
  if (!_validator.isFunction(handler = _handlers[parameters.whatType])) {
    throw new Error("Unsupported handler for whatType: " + parameters.whatType);
  }
  return handler(parameters);
};