UNPKG

express-restify-mt-mongoose

Version:
28 lines (23 loc) 2.62 kB
'use strict'; module.exports = function (options) { var errorHandler = require('../errorHandler')(options); return function (req, res, next) { var handler = function handler(err, access) { if (err) { return errorHandler(req, res, next)(err); } if (['public', 'private', 'protected'].indexOf(access) < 0) { throw new Error('Unsupported access, must be "private", "protected" or "public"'); } req.access = access; next(); }; if (options.access.length > 1) { options.access(req, handler); } else { handler(null, options.access(req)); } }; }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9taWRkbGV3YXJlL2FjY2Vzcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sT0FBUCxHQUFpQixVQUFVLE9BQVYsRUFBbUI7QUFDbEMsTUFBTSxlQUFlLFFBQVEsaUJBQVIsRUFBMkIsT0FBM0IsQ0FBckI7O0FBRUEsU0FBTyxVQUFVLEdBQVYsRUFBZSxHQUFmLEVBQW9CLElBQXBCLEVBQTBCO0FBQy9CLFFBQU0sVUFBVSxTQUFWLE9BQVUsQ0FBVSxHQUFWLEVBQWUsTUFBZixFQUF1QjtBQUNyQyxVQUFJLEdBQUosRUFBUztBQUNQLGVBQU8sYUFBYSxHQUFiLEVBQWtCLEdBQWxCLEVBQXVCLElBQXZCLEVBQTZCLEdBQTdCLENBQVA7QUFDRDs7QUFFRCxVQUFJLENBQUMsUUFBRCxFQUFXLFNBQVgsRUFBc0IsV0FBdEIsRUFBbUMsT0FBbkMsQ0FBMkMsTUFBM0MsSUFBcUQsQ0FBekQsRUFBNEQ7QUFDMUQsY0FBTSxJQUFJLEtBQUosQ0FBVSxnRUFBVixDQUFOO0FBQ0Q7O0FBRUQsVUFBSSxNQUFKLEdBQWEsTUFBYjtBQUNBO0FBQ0QsS0FYRDs7QUFhQSxRQUFJLFFBQVEsTUFBUixDQUFlLE1BQWYsR0FBd0IsQ0FBNUIsRUFBK0I7QUFDN0IsY0FBUSxNQUFSLENBQWUsR0FBZixFQUFvQixPQUFwQjtBQUNELEtBRkQsTUFFTztBQUNMLGNBQVEsSUFBUixFQUFjLFFBQVEsTUFBUixDQUFlLEdBQWYsQ0FBZDtBQUNEO0FBQ0YsR0FuQkQ7QUFvQkQsQ0F2QkQiLCJmaWxlIjoiYWNjZXNzLmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob3B0aW9ucykge1xyXG4gIGNvbnN0IGVycm9ySGFuZGxlciA9IHJlcXVpcmUoJy4uL2Vycm9ySGFuZGxlcicpKG9wdGlvbnMpXHJcblxyXG4gIHJldHVybiBmdW5jdGlvbiAocmVxLCByZXMsIG5leHQpIHtcclxuICAgIGNvbnN0IGhhbmRsZXIgPSBmdW5jdGlvbiAoZXJyLCBhY2Nlc3MpIHtcclxuICAgICAgaWYgKGVycikge1xyXG4gICAgICAgIHJldHVybiBlcnJvckhhbmRsZXIocmVxLCByZXMsIG5leHQpKGVycilcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKFsncHVibGljJywgJ3ByaXZhdGUnLCAncHJvdGVjdGVkJ10uaW5kZXhPZihhY2Nlc3MpIDwgMCkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVW5zdXBwb3J0ZWQgYWNjZXNzLCBtdXN0IGJlIFwicHJpdmF0ZVwiLCBcInByb3RlY3RlZFwiIG9yIFwicHVibGljXCInKVxyXG4gICAgICB9XHJcblxyXG4gICAgICByZXEuYWNjZXNzID0gYWNjZXNzXHJcbiAgICAgIG5leHQoKVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChvcHRpb25zLmFjY2Vzcy5sZW5ndGggPiAxKSB7XHJcbiAgICAgIG9wdGlvbnMuYWNjZXNzKHJlcSwgaGFuZGxlcilcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGhhbmRsZXIobnVsbCwgb3B0aW9ucy5hY2Nlc3MocmVxKSlcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19 //# sourceMappingURL=access.js.map