From 20026a9d04d0226e1f034915dbe804c97b030664 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miroslav=20Bajto=C5=A1?= Date: Wed, 15 Oct 2014 16:42:46 +0200 Subject: [PATCH] Fix places using undefined variables Also enable jshint option "undefined" in order to catch these kind of errors in the future. --- .jshintrc | 3 +-- common/models/role-mapping.js | 5 ++++- common/models/scope.js | 1 + common/models/user.js | 2 +- index.js | 2 +- lib/access-context.js | 1 + lib/model.js | 6 ++++-- lib/persisted-model.js | 9 +++++---- 8 files changed, 18 insertions(+), 11 deletions(-) diff --git a/.jshintrc b/.jshintrc index 8b67c051..c8c31032 100644 --- a/.jshintrc +++ b/.jshintrc @@ -8,6 +8,5 @@ "maxlen": 80, "trailing": true, "newcap": true, -"nonew": true, -"undef": false +"nonew": true } diff --git a/common/models/role-mapping.js b/common/models/role-mapping.js index e2f0982d..a6bfc4e7 100644 --- a/common/models/role-mapping.js +++ b/common/models/role-mapping.js @@ -1,3 +1,5 @@ +var loopback = require('../../lib/loopback'); + /** * The `RoleMapping` model extends from the built in `loopback.Model` type. * @@ -59,7 +61,8 @@ module.exports = function(RoleMapping) { */ RoleMapping.prototype.childRole = function (callback) { if (this.principalType === RoleMapping.ROLE) { - var roleModel = this.constructor.Role || loopback.getModelByType(Role); + var roleModel = this.constructor.Role || + loopback.getModelByType(loopback.Role); roleModel.findById(this.principalId, callback); } else { process.nextTick(function () { diff --git a/common/models/scope.js b/common/models/scope.js index 4a96e4a3..7ffe1d1d 100644 --- a/common/models/scope.js +++ b/common/models/scope.js @@ -1,4 +1,5 @@ var assert = require('assert'); +var loopback = require('../../lib/loopback'); /** * Resource owner grants/delegates permissions to client applications diff --git a/common/models/user.js b/common/models/user.js index 38387452..d4a28a5c 100644 --- a/common/models/user.js +++ b/common/models/user.js @@ -473,7 +473,7 @@ User.setup = function() { if (ctx.req) { ctx.res.redirect(ctx.req.param('redirect')); } else { - fn(new Error('transport unsupported')); + next(new Error('transport unsupported')); } }); }); diff --git a/index.js b/index.js index 6d67b190..1512239a 100644 --- a/index.js +++ b/index.js @@ -19,4 +19,4 @@ loopback.Remote = require('loopback-connector-remote'); */ loopback.GeoPoint = require('loopback-datasource-juggler/lib/geo').GeoPoint; -loopback.ValidationError = datasourceJuggler.ValidationError; +loopback.ValidationError = loopback.Model.ValidationError; diff --git a/lib/access-context.js b/lib/access-context.js index 4101ea0e..acbe9495 100644 --- a/lib/access-context.js +++ b/lib/access-context.js @@ -1,3 +1,4 @@ +var assert = require('assert'); var loopback = require('./loopback'); var debug = require('debug')('loopback:security:access-context'); diff --git a/lib/model.js b/lib/model.js index 8c015095..7d89490d 100644 --- a/lib/model.js +++ b/lib/model.js @@ -250,7 +250,7 @@ Model._ACL = function getACL(ACL) { if(_aclModel) { return _aclModel; } - var aclModel = loopback.ACL; + var aclModel = registry.getModel('ACL'); _aclModel = registry.getModelByType(aclModel); return _aclModel; }; @@ -268,7 +268,7 @@ Model._ACL = function getACL(ACL) { */ Model.checkAccess = function(token, modelId, sharedMethod, ctx, callback) { - var ANONYMOUS = loopback.AccessToken.ANONYMOUS; + var ANONYMOUS = registry.getModel('AccessToken').ANONYMOUS; token = token || ANONYMOUS; var aclModel = Model._ACL(); @@ -714,6 +714,8 @@ Model.nestRemoting = function(relationName, options, cb) { } }; +Model.ValidationError = require('loopback-datasource-juggler').ValidationError; + // setup the initial model Model.setup(); diff --git a/lib/persisted-model.js b/lib/persisted-model.js index a1e1baa5..5b298960 100644 --- a/lib/persisted-model.js +++ b/lib/persisted-model.js @@ -3,6 +3,7 @@ */ var Model = require('./model'); +var registry = require('./registry'); var runtime = require('./runtime'); var assert = require('assert'); var async = require('async'); @@ -322,7 +323,7 @@ PersistedModel.prototype.save = function (options, callback) { if (valid) { save(); } else { - var err = new ValidationError(inst); + var err = new Model.ValidationError(inst); // throws option is dangerous for async usage if (options.throws) { throw err; @@ -700,13 +701,13 @@ PersistedModel.changes = function(since, filter, callback) { checkpoint: {gt: since}, modelName: this.modelName }, function(err, changes) { - if(err) return cb(err); + if(err) return callback(err); var ids = changes.map(function(change) { return change.getModelId(); }); filter.where[idName] = {inq: ids}; model.find(filter, function(err, models) { - if(err) return cb(err); + if(err) return callback(err); var modelIds = models.map(function(m) { return m[idName].toString(); }); @@ -1016,7 +1017,7 @@ PersistedModel.enableChangeTracking = function() { } PersistedModel._defineChangeModel = function() { - var BaseChangeModel = loopback.Change; + var BaseChangeModel = registry.getModel('Change'); assert(BaseChangeModel, 'Change model must be defined before enabling change replication');