* Use the new remoting.authorization hook for check access (Ritchie Martori)
* Define remote methods via model settings/config (Miroslav Bajtoš)
* Pass the full options object to the email send method in user verification process. (Alexandru Savin)
* un-document _findLayerByHandler (Rand McKinney)
* Gruntfile: disable debug & watch for CI builds (Miroslav Bajtoš)
* Update devDependencies to the latest versions (Miroslav Bajtoš)
* Remove trailing whitespace added by 242bcec (Miroslav Bajtoš)
* Update model.js (Rand McKinney)
Process `settings.methods` and `config.methods` as a key-value map
where the key is the method name and the value is an object describing
the method in the format expected by strong-remoting.
Example: a static method `Model.create`
"methods": {
"create": {
"isStatic": true,
"accepts": {
"arg": "data", "type": "Car",
"http": { "source": "body" }
},
"returns": { "arg": "data", "type": "Car", "root": true }
}
}
This patch is based on the code proposed by @mrfelton in #1163.
This fixes the following error on io.js:
Fatal error: Maximum call stack size exceeded
RangeError: Maximum call stack size exceeded
at String.match (native)
at Object.exports.fromSource (node_modules/karma-browserify/node_modules/convert-source-map/index.js:109:19)
at updateSourceMap (node_modules/karma-browserify/lib/bro.js:326:23)
at Browserify.<anonymous> (node_modules/karma-browserify/lib/bro.js:351:9)
at Browserify.g (events.js:257:16)
at emitTwo (events.js:92:20)
at Browserify.emit (events.js:169:7)
at node_modules/karma-browserify/lib/bro.js:263:11
at node_modules/browserify/index.js:758:13
at ConcatStream.<anonymous> (node_modules/browserify/node_modules/concat-stream/index.js:36:43)
This patch fixes the method Model.getApp() that started to report
the following error after b61fae5 was landed:
assert.js:88
throw new assert.AssertionError({
^
AssertionError: undefined == true
at loopback/loopback/lib/model.js:392:7
at EventEmitter.<anonymous> (loopback/loopback/lib/model.js:222:9)
at EventEmitter.g (events.js:257:16)
at emitOne (events.js:77:13)
at EventEmitter.emit (events.js:166:7)
at EventEmitter.app.model (loopback/loopback/lib/application.js:157:9)
Change the type of the "include" argument to "string array".
The type used to be "string" before and thus requests sending multiple
include items were technically incorrect.
Fix a regression introduced by b917075 where two loopback projects,
each one using a different instance of loopback module, were
sharing the global registry and thus not working correctly.
The issue was discovered by unit-tests in loopback-workspace.
The commit b917075 accidentally removed a couple of properties,
this commit is bringing them back:
- loopback.modelRegistry
- loopback.defaultDataSources
A unit-test was added to prevent this kind of regressions in the future.
Add end-to-end unit-tests verifying enforcement of access control during
conflict resolution.
Implement two facade methods providing REST API for Change methods used
by conflict resolution:
PersistedModel.findLastChange
GET /api/{model.pluralName}/{id}/changes/last
PersistedModel.updateLastChange
PUT /api/{model.pluralName}/{id}/changes/last
By providing these two methods on PersistedModel, replication users
don't have to expose the Change model via the REST API. What's even
more important, these two methods use the same set of ACL rules
as other (regular) PersistedModel methods.
Rework `Conflict.prototype.changes()` and `Conflict.prototype.resolve()`
to use these new facade methods.
Implement a new method `Conflict.prototype.swapParties()` that provides
better API for the situation when a conflict detected in Remote->Local
replication should be resolved locally (i.e. in the replication target).