Commit Graph

2089 Commits

Author SHA1 Message Date
ebarault a657e8aa46 starting unit tests 2017-03-23 10:18:28 +01:00
ebarault 844147517e first commit for general discussion 2017-03-09 13:34:58 +01:00
Miroslav Bajtoš 011dc1f6b8 Merge pull request #3253 from phairow/patch-1
Fix User.verify to convert ObjectID uid to string
2017-03-08 16:26:36 +01:00
phairow 0969493ab7
Fix User.verify to convert uid to string
Applications using MongoDB connectors typically have `user.id`
property of type ObjectID.

This commit fixes the code building the verification URL to
correctly convert the user id value into string.
2017-03-08 16:03:53 +01:00
Miroslav Bajtoš 48bf16bd5a Merge pull request #3245 from strongloop/fix/token-middleware-custom-model
fix custom token model in token middleware
2017-03-06 18:10:41 +01:00
Miroslav Bajtoš b5a8564956 Merge pull request #3249 from islamixo/feature-verificationToken
Pass options.verificationToken to templateFn
2017-03-06 18:05:44 +01:00
Hiran del Castillo a22b1e13f1
Pass options.verificationToken to templateFn
Enhance User.prototype.verify to pass the generated token
to the templating function in addition to other existing properties.

This allows application to build multiple URLs in the email template,
for example in order to provide a different URL for desktop and
mobile browsers.
2017-03-06 17:08:35 +01:00
ebarault cf98d379c4 fix custom token model in token middleware
Fixing server/middleware/token.js to handle correctly the
setup of a custom AccessToken model by name in either
middleware.json or using any of :
	app.use(loopback.token({...}));
	app.middlewareFromConfig(loopback.token, {...})
	app.middleware('auth', loopback.token({...})
2017-03-06 16:10:25 +01:00
Miroslav Bajtoš 01ce9b5f5a Merge pull request #3247 from strongloop/update-deps
Update runtime dependencies
2017-03-06 11:19:21 +01:00
Miroslav Bajtoš 5ebc9b6a2e Merge pull request #3230 from strongloop/fix/context-passing-for-isOwner
Fix context passing in OWNER role resolver
2017-03-03 16:19:52 +01:00
Miroslav Bajtoš 8510982bea
Update runtime dependencies
- isemail@2
 - loopback-phase@3

Skip update of nodemailer because it changed the license to GPL-like one
2017-03-03 15:53:49 +01:00
Miroslav Bajtoš ed4f56c7f8 Merge pull request #3231 from strongloop/warn-on-misconfigured-accessToken-user
Warn on misconfigured access token user
2017-03-03 10:57:20 +01:00
Miroslav Bajtoš 79f441b9c4
Verify User and AccessToken relations at startup
Modify `app.enableAuth()` to verify that (custom) User and AccessToken
models have correctly configured their hasMany/belongsTo relations
and print a warning otherwise.
2017-03-03 10:18:58 +01:00
Miroslav Bajtoš f0c9700e1d
Deep-clone model settings in lib/builtin-models
Fix the code loading builtin models to always clone the JSON object
used as model settings/definition. This is needed to allow applications
to modify model settings while not affecting settings of new models
created in the local registry of another app.
2017-02-24 15:13:06 +01:00
Miroslav Bajtoš c45954cdaa
Use local registry in test/replication.rest.test 2017-02-24 15:13:06 +01:00
Miroslav Bajtoš abf8246382
Fix test/access-token.test to use local registry 2017-02-24 14:17:12 +01:00
Benjamin Schuster-Boeckler 4570626e9d
Fix context passing in OWNER role resolver 2017-02-24 12:28:30 +01:00
Miroslav Bajtoš 2570dda984
3.4.0
* Fix access-token invalidation for missing relation (Miroslav Bajtoš)
 * Configure Travis CI to cache phantomjs binaries (Miroslav Bajtoš)
 * Optimise replication (kobaska)
 * Improve "filter" arg description (Raymond Camden)
2017-02-24 09:36:42 +01:00
Miroslav Bajtoš ec9274c5aa Merge pull request #3227 from strongloop/fix/invalidate-tokens
Fix access-token invalidation for missing relation
2017-02-24 09:20:17 +01:00
Miroslav Bajtoš 2cac589860
Fix access-token invalidation for missing relation
Fix the code invalidating access tokens on user email/password changes
to correctly handle the case when the relation
"AccessToken belongs to (subclassed) user" is not configured.
2017-02-23 12:56:13 +01:00
Miroslav Bajtoš 4796b7daf9 Merge pull request #3221 from strongloop/ci/cache-phantomjs-on-travis
Configure Travis CI to cache phantomjs binaries
2017-02-22 15:36:26 +01:00
Miroslav Bajtoš 37b49194f2 Merge pull request #2961 from kobaska/optimise-replication
Optimize replication by sending multiple smaller requests to the server
2017-02-22 15:33:30 +01:00
Miroslav Bajtoš f871358688
Configure Travis CI to cache phantomjs binaries
This should speed up our CI builds and also save a lot of bandwidth
for people providing phantomjs-prebuilt module.

See also
https://www.npmjs.com/package/phantomjs-prebuilt#continuous-integration
2017-02-22 15:19:55 +01:00
kobaska 7078c5d0e5
Optimise replication
Add a new model-level setting "replicationChunkSize" which allows
users to configure change replication algorithm to issue several
smaller requests to fetch changes and upload updates.
2017-02-22 15:12:54 +01:00
Miroslav Bajtoš 92317e811a Merge pull request #3218 from strongloop/fix/filter-desc
Improve "filter" arg description
2017-02-21 15:00:28 +01:00
Raymond Camden 440b9a52a6
Improve "filter" arg description
Add an example showing how to serialize object values as JSON.
2017-02-21 14:00:09 +01:00
Miroslav Bajtoš c69e010670 3.3.0
* Fix Role.isOwner() for multiple user models (ebarault)
 * Update ISSUE_TEMPLATE.md (Simon Ho)
 * Upgrade supertest to 3.x (Miroslav Bajtoš)
 * Fix creation of verification links (Miroslav Bajtoš)
 * Enable multiple user models (Eric)
 * Babelify juggler for Karma tests (Miroslav Bajtoš)
 * Fix Karma config to babelify node_modules too (Miroslav Bajtoš)
 * Add promise support to built-in model RoleMapping (ebarault)
 * Add promise support to built-in model ACL (ebarault)
 * Add nyc coverage, report data to coveralls.io (Miroslav Bajtoš)
 * Upgrade eslint config, fix linter errors (Miroslav Bajtoš)
 * Add missing type to Role properties definition (David Hernandez)
 * Preserve sessions on User.save() making no changes (Miroslav Bajtoš)
 * Fix logout to handle no or missing accessToken (Ritchie Martori)
 * Promise-ify built-in Role model (Miroslav Bajtoš)
 * Remove .jscsrc that's no longer used (Miroslav Bajtoš)
 * Enable ES6/ES2015 goodness (Miroslav Bajtoš)
 * Remove test/support.js from karma config (Miroslav Bajtoš)
 * Use English when running Mocha tests (Miroslav Bajtoš)
 * Update ISSUE_TEMPLATE (Simon Ho)
 * Updating README - add cli and remove arc (Joe Sepi)
 * Fix User methods to use correct Primary Key (Aris Kemper)
 * Fix User.resetPassword to call createAccessToken() (João Ribeiro)
 * Role model: resolves related models by name (Benjamin Kroeger)
2017-02-17 15:14:55 +01:00
Miroslav Bajtoš c8271491af Merge pull request #3180 from ebarault/enable-multiple-user-models
Fix Role.isOwner() for multiple user models
2017-02-17 12:49:29 +01:00
ebarault f0e70dd8a9 Fix Role.isOwner() for multiple user models
Fix `Role.isOwner()` to check both principalId and principalType.
This fixes a bug where users from different User model were treated
as owners as long as their user id was the same as owner's id.
2017-02-17 11:19:07 +01:00
Simon Ho 0dbfe8970f Update ISSUE_TEMPLATE.md 2017-02-14 10:17:43 -08:00
Miroslav Bajtoš 88c38e7ff8 Merge pull request #3196 from strongloop/upgrade-supertest
Upgrade supertest to 3.x
2017-02-09 16:37:30 +01:00
Miroslav Bajtoš a80f844e88 Upgrade supertest to 3.x
Also fix tests relying on internal supertest API to keep working with
then new supertest internals after the upgrade.
2017-02-09 16:17:10 +01:00
Miroslav Bajtoš d80957819a Merge pull request #3185 from strongloop/fix/hash-path-in-redirect
Fix creation of verification links
2017-02-09 13:30:58 +01:00
Miroslav Bajtoš ea05a2c4dc Fix creation of verification links
Fix User.prototype.verify to call `querystring.stringify` instead
of concatenating query-string components directly.

In particular, this fixes the bug where `options.redirect` containing
a hash fragment like `#/home?arg1=value1&arg2=value2` produced incorrect
URL, because the `redirect` value was not correctly encoded.
2017-02-06 12:39:21 +01:00
Miroslav Bajtoš 304ecc4784 Merge pull request #2971 from ebarault/enable-multiple-user-models
Enable multiple user models inheriting from base class User
2017-02-02 10:03:01 +01:00
Eric 9fe084fffd Enable multiple user models
Allow LoopBack applications to configure multiple User models and share
the same AccessToken model.

To enable this feature:

1) In your custom AccessToken model:

 - add a new property "principalType" of type "string".
 - configure the relation "belongsTo user" as polymorphic,
   using "principalType" as the discriminator

2) In your User models:

 - Configure the "hasMany accessTokens" relation as polymorphic,
   using "principalType" as the discriminator

When creating custom Role and Principal instances, set your
User model's name as the value of "prinicipalType".
2017-02-02 09:42:30 +01:00
Miroslav Bajtoš 798ebfba81 Merge pull request #3174 from strongloop/fix/juggler-in-karma
Babelify juggler for Karma tests
2017-02-01 14:22:08 +01:00
Miroslav Bajtoš 5b404cad6c Babelify juggler for Karma tests
Fix configuration of Karma:

 - Disable ES6 modules. The ES6 module transpiler is adding
  "use strict" to all source files, this breaks e.g. chai or juggler
 - Relax "ignore" setting to exclude only strong-task-emitter,
   thus bring back Babel transpilation for chai and juggler.
2017-02-01 14:00:43 +01:00
Miroslav Bajtoš db3c7b6dbd Merge pull request #3173 from strongloop/fix/strong-remoting-in-karma
Fix Karma config to babelify node_modules too
2017-02-01 12:46:18 +01:00
Miroslav Bajtoš 3c209ee1de Fix Karma config to babelify node_modules too
Before this change, dependencies in node_modules (e.g. strong-remoting)
were not transformed to ES5 and thus crashed the tests in PhantomJS.

Note that loopback-datasource-juggler cannot be babelified to ES5
because it does not correctly support strict mode yet.
2017-02-01 12:27:42 +01:00
Miroslav Bajtoš 76dd35e1d8 Merge pull request #3169 from ebarault/feature/promisify-role-mapping
Add promise support to built-in model RoleMapping
2017-02-01 10:29:50 +01:00
Miroslav Bajtoš e19c0dd974 Merge pull request #3165 from strongloop/enable/coveralls
Add nyc coverage, report data to coveralls.io
2017-02-01 10:11:58 +01:00
ebarault ceceb44e78 Add promise support to built-in model RoleMapping 2017-02-01 09:51:43 +01:00
Miroslav Bajtoš c099d8c731 Merge pull request #3163 from ebarault/feature/promisify-acl
Add promise support to built-in model ACL
2017-01-31 14:54:26 +01:00
Miroslav Bajtoš dcb2f159ec Merge pull request #3160 from strongloop/fix/token-invalidation-on-save
Preserve sessions on User.save() making no changes
2017-01-31 14:38:48 +01:00
ebarault a63fad402e Add promise support to built-in model ACL 2017-01-31 14:09:43 +01:00
Miroslav Bajtoš 7eeadc4289 Add nyc coverage, report data to coveralls.io 2017-01-31 14:09:02 +01:00
Miroslav Bajtoš c7e0a15a44 Merge pull request #3166 from strongloop/upgrade/eslint-config
Upgrade eslint config, fix linter errors
2017-01-31 14:08:31 +01:00
Miroslav Bajtoš 3b17a0cf5c Upgrade eslint config, fix linter errors 2017-01-31 13:44:32 +01:00
Miroslav Bajtoš bb939bec07 Merge pull request #3161 from strongloop/fix/role-properties
Add missing type to Role properties definition
2017-01-30 16:08:33 +01:00