Commit Graph

378 Commits

Author SHA1 Message Date
Miroslav Bajtoš 7cfe450161 Make app.datasources unique per app instance
This removes a source of confusion in unit-tests.
2014-05-27 14:33:42 +02:00
Miroslav Bajtoš 227c2d05cd app: flatten model config
Support flat structure of model config objects, where model options
are set as top-level properties.

Before:

    Customer: {
      dataSource: 'db',
      options: {
        base: 'User'
      }
    }

Now:

    Customer: {
      dataSource: 'db',
      base: 'User'
    }
2014-05-27 08:10:20 +02:00
Raymond Feng ed0b568542 Fix the test for mocha 1.19.0
See 6c705cd4d4
2014-05-26 21:52:48 -07:00
Miroslav Bajtoš bfb154d445 Modify `loopback.rest` to include `loopback.token`
Make `loopback.rest` self-contained, so that authentication works
out of the box.

    var app = loopback();
    app.enableAuth();
    app.use(loopback.rest());

Note that cookie parsing middleware is not added, users have to
explicitly configure that if they want to store access tokens
in cookies.

Modify `loopback.token` to skip token lookup when the request already
contains `accessToken` property. This is in line with other
connect-based middleware like `cookieParser` or `json`.
2014-05-21 15:22:36 +02:00
Ritchie Martori 7eeed19bf0 Relax validation object test 2014-05-20 14:39:28 -07:00
Ritchie Martori d237ae5ddb Merge latest from master 2014-05-20 14:31:09 -07:00
Ritchie Martori eec7bdd5f4 - Use the RemoteObjects class to find remote objects instead of
creating a cache
 - Use the SharedClass class to build the remote connector
 - Change default base model from Model to DataModel
 - Fix DataModel errors not logging correct method names
 - Use the strong-remoting 1.4 resolver API to resolve dynamic remote
methods (relation api)
 - Remove use of fn object for storing remoting meta data
2014-05-19 15:56:26 -07:00
Ritchie Martori 4d5e7884c2 Add test for conflicts where both deleted 2014-05-16 09:58:23 -07:00
Miroslav Bajtoš 4b3d20e409 test/geo-point: relax too precise assertions
Relax the assertions to verify only the integer part of the distances.
The decimal part is subject to small variances depending on the exact
implementation of floating-point arithmetic.

For example, the distance calculated on Node v0.11.13 is different
than the distance calculated on Node v0.10.x.
2014-05-16 16:24:18 +02:00
Ritchie Martori 2f21f4ec1e Rework replication test 2014-05-15 17:30:58 -07:00
Ritchie Martori 5bf1f76762 !fixup Test cleanup 2014-05-07 07:44:00 -07:00
Ritchie Martori a3a6828709 Move replication implementation to DataModel 2014-05-06 13:31:23 -07:00
Ritchie Martori f8b5fa11ec All tests passing 2014-05-02 21:19:14 -07:00
Ritchie Martori ae2fb9dea0 !fixup use DataModel instead of Model for all data based models 2014-05-02 20:15:01 -07:00
Ritchie Martori e026a7f52c fixup! unskip failing tests 2014-05-02 20:07:59 -07:00
Ritchie Martori 012f880078 !fixup RemoteConnector tests 2014-05-02 20:04:06 -07:00
Ritchie Martori 1c7527ae3d Add missing test/model file 2014-05-02 18:12:50 -07:00
Ritchie Martori 918596f035 Refactor DataModel remoting
- Move DataModel remoting setup into setup phase
 - Add a remoting type converter for DataModels
 - Move model tests into re-usable test utilities
 - Move other test utilities into new test utilities folder
2014-05-02 18:12:24 -07:00
Ritchie Martori e35309ba27 Fixes for e2e replication / remote connector tests 2014-04-29 17:17:49 -07:00
Raymond Feng 921e35954d Rename the method so that it won't conflict with Model.checkAccess
See https://github.com/strongloop/loopback/issues/239
2014-04-21 11:13:03 -07:00
Ritchie Martori 83e74ab414 Merge 2014-04-16 07:39:13 -07:00
Ritchie Martori b660f8a59e Add replication e2e tests 2014-04-16 07:33:17 -07:00
Ritchie Martori e86a00de69 Merge branch master 2014-04-15 12:53:00 -07:00
Ritchie Martori 940e11125d Fix save implementation for remoting connector 2014-04-14 14:17:56 -07:00
Ritchie Martori 7c0a470d64 Add basic Remote connector e2e test 2014-04-14 12:25:41 -07:00
Ritchie Martori 5298834c68 Merge branch 'master' into feature/remoting-connector 2014-04-14 11:01:20 -07:00
Ritchie Martori 63ad8f69ae Add test for remoting nested hidden properties 2014-04-11 11:43:37 -07:00
Raymond Feng 8f50c9dede Add an assertion to the returned store object 2014-04-04 08:26:57 -07:00
Raymond Feng cdbf45c53a Add an integration test for belongsTo remoting 2014-04-03 20:46:30 -07:00
Ritchie Martori 5f81fad921 Merge pull request #217 from strongloop/feature/hidden-properties
Feature/hidden properties
2014-03-31 12:04:49 -07:00
Ritchie Martori 4c185e5453 Support host / port in Remote connector 2014-03-27 14:47:30 -07:00
Miroslav Bajtoš b1679803d9 test: add hasAndBelongsToMany integration test
* it allows to find related object via URL scope
  GET /api/categories/{cat-id}/products

* it allows to find related objects via where filter
  GET /api/products?filter[where][categoryId]={cat-id}
  (skipped for now)

* it includes requested related models in `find`
  GET /api/categories/findOne
      ?filter[where][id]=CAT-ID&filter[include]=products

* it includes requested related models in `findById`
  GET /api/categories/{cat-id}?include=products
  (skipped for now)
2014-03-25 19:38:15 +01:00
Ritchie Martori 5b50a99eb3 Add hidden property support to models 2014-03-21 12:53:04 -07:00
Ritchie Martori c521b3c386 Allow app.model() to accept a DataSource instance 2014-03-21 12:18:00 -07:00
Ritchie Martori de5d0b8949 Make verifications url safe 2014-03-21 12:02:11 -07:00
Raymond Feng 328a72ac91 Improve the ACL matching algorithm
See https://github.com/strongloop/loopback-example-access-control/issues/8
2014-03-19 15:09:20 -07:00
Miroslav Bajtoš 1aaf6eed35 Add test for request pausing during authentication 2014-03-18 08:43:24 +01:00
Raymond Feng f031e79392 Remove the generated flag as the id is set by the before hook 2014-03-17 10:01:29 -07:00
Raymond Feng 89aa3595f5 Set the correct status code for User.login
See https://github.com/strongloop/loopback/issues/118
2014-02-28 13:19:52 -08:00
Ritchie Martori 4e437586ed Merge pull request #192 from strongloop/fix/port-zero
Remove coercion from port check
2014-02-21 10:08:27 -08:00
Miroslav Bajtoš fe6ac0bebf Merge pull request #195 from globocom/fix-clear-handler-cache-test
Rewrites test for clear handler cache.
2014-02-21 18:51:55 +01:00
Raymond Feng 4a0c564c68 Merge pull request #196 from strongloop/feature/remoting-options
Allows options to be passed to strong-remoting
2014-02-21 09:10:37 -08:00
Raymond Feng 1717729efc Merge pull request #186 from albertoleal/RemoveUnnecessaryLines
Remove unnecessary lines
2014-02-21 09:06:11 -08:00
Guilherme Cirne f43273e5d7 Rewrite test for clear handler cache. 2014-02-20 14:39:57 -03:00
Raymond Feng 37646fa008 Allows options to be passed to strong-remoting 2014-02-19 15:14:31 -08:00
Ritchie Martori 138821cf8b Merge package.json and lib/loopback.js 2014-02-19 11:44:44 -08:00
Ritchie Martori 500703e1fb Remove coercion from port check 2014-02-18 16:54:40 -08:00
Ritchie Martori edd16b9ce8 Merge pull request #193 from globocom/clear-handler-cache2
Clear handler cache
2014-02-18 14:24:23 -08:00
Guilherme Cirne b466bb96c8 The simplest possible solution for clearing the handler cache when registering a model. 2014-02-18 17:40:35 -03:00
Ritchie Martori a313d1d140 Remove outdated test readme 2014-02-18 10:37:43 -08:00
Alberto Leal 6eecaa78a3 Remove unnecessary lines 2014-02-17 14:05:04 -03:00
Raymond Feng 46b579dc4a Make sure User/AccessToken relations are set up by default
User.login assumes the relation User.accessTokens exists
2014-02-14 10:31:30 -08:00
Ritchie Martori e7f64a3abf Add karma for running browser tests 2014-02-12 10:17:02 -08:00
Raymond Feng 618b563c6e Use hex encoding for application ids/keys
base64 encoded ids/keys are not friendly for urls
2014-02-07 11:14:01 -08:00
Ritchie Martori 0bf7af104d fixup! rename Change.track => rectifyModelChanges 2014-02-05 15:27:58 -08:00
Miroslav Bajtoš 38f4748021 Add app.isAuthEnabled.
The flag is set by `app.enableAuth` and can be used to detect
whether the access control is enabled.
2014-02-05 18:46:22 +01:00
Miroslav Bajtoš b13ff35697 Make app.models unique per app instance
Remove a source of confusion in unit-tests.
2014-02-04 20:28:19 +01:00
Miroslav Bajtoš 4a076f13fd Fix incorrect usage of `app` in app.test.js
The `beforeEach` hook was using a local `var app`, the test was
accessing global `app` created by `test/support.js`.
2014-02-04 20:27:14 +01:00
Raymond Feng 592f3f9278 Make sure the configured ACL submodel is used 2014-02-03 16:00:01 -08:00
Ritchie Martori 13f67385d0 Add model tests 2014-01-30 14:20:34 -08:00
Ritchie Martori cc49d675ce Add Change model 2014-01-30 14:20:33 -08:00
Miroslav Bajtoš d6f0b5f5a6 Add `include=user` param to `User.login`
Allow LB clients to get details of the currently logged-in user
as part of the login response.

Improve method's `description` to mention this new option.
2014-01-30 18:09:54 +01:00
Ritchie Martori a0e595dce8 Add model tests 2014-01-28 14:46:16 -08:00
Miroslav Bajtoš 20766e251a Add loopback.compat to simplify upgrade to 1.6
Add a compatibility layer that allows applications based on LB pre-v1.6
to work with 1.6 versions with a minimum amount of changes required.

New flag(s):
  compat.usePluralNamesForRemoting
2014-01-27 10:29:57 +01:00
Ritchie Martori 4be3395298 Add Change model 2014-01-26 13:20:19 -08:00
Raymond Feng f08b9427ab Add a test for autoAttach 2014-01-23 15:27:31 -08:00
Raymond Feng bcc7e68e0e Add lookback.getModelByType() and use it resolve model deps 2014-01-23 14:39:27 -08:00
Ritchie Martori 86a85291ac Fix user test race condition 2014-01-23 14:39:15 -08:00
Ritchie Martori a43d6004c1 Fix race condition where MyEmail model was not attached to the correct dataSource in tests 2014-01-23 14:25:54 -08:00
Raymond Feng a6ff22c9c1 Make sure defaultPermission is checked 2014-01-16 15:05:10 -08:00
Raymond Feng c8eb5d9170 Make sure methods are called in the context of the calling class 2014-01-14 15:34:44 -08:00
Miroslav Bajtoš 1f80164e69 Merge pull request #135 from strongloop/feature/speed-up-user-passwords
Speed up tests accessing User.password
2014-01-13 22:04:41 -08:00
Miroslav Bajtoš 809411c103 Speed up tests accessing User.password
Decrease User.settings.saltWorkFactor in order to speed up unit-tests.
2014-01-13 20:05:22 +01:00
Miroslav Bajtoš ed81bdb6b8 Implement app.installMiddleware
The implementation is mostly a copy of
    loopback-workspace/templates/app.js
2014-01-13 17:26:24 +01:00
Miroslav Bajtoš 914ac2dcc9 Implement `app.listen`
The method starts a http server on the host & port configured
in the app config.
2014-01-13 09:12:54 +01:00
Miroslav Bajtoš 92896a441c Add app.restApiRoot setting
Allow loopback users to configure API root via config file, instead of
editing app.js generated by loopback-workspace.

Allow loopback plugins to discover the path where the REST adapter is
mounted.
2014-01-07 16:05:48 +01:00
Miroslav Bajtoš 78f514a003 Add ValidationError to loopback exports.
Simplify the construction of validation errors in user-land code:

    var error = new loopback.ValidationError(invalidModel);
2014-01-02 10:35:17 +01:00
Ritchie Martori 7b826e7c9e Add e2e tests for relations 2013-12-20 19:15:23 -08:00
Ritchie Martori 981bdd4c81 app.boot() now loads the "boot" directory 2013-12-18 21:41:41 -08:00
Ritchie Martori 16b790a93a Merge pull request #102 from strongloop/fix/user
Various Fixes and Behavioral Changes to the User Model
2013-12-18 21:34:30 -08:00
Raymond Feng 40cd71c4c6 Clean up the test case 2013-12-18 12:28:58 -08:00
Raymond Feng 598b1e6b61 Reformat the code using 2 space identation 2013-12-18 11:49:09 -08:00
Raymond Feng 95ad3e8c04 Allow cert/key data to be shared by push/feedback 2013-12-18 10:58:34 -08:00
Ritchie Martori 9f2651578b fixup - Include accessToken in user logout tests 2013-12-17 21:34:30 -08:00
Ritchie Martori 98ed38302a Logout now automatically pulls the accessToken from the request 2013-12-17 21:22:05 -08:00
Ritchie Martori 939df463fe Fix tests depending on old behavior of default User ACLs 2013-12-17 21:10:05 -08:00
Ritchie Martori ea7c9216d7 App config settings are now available from app.get() 2013-12-11 19:31:16 -08:00
Raymond Feng 97dc0aa441 Refactor to the code use wrapper classes
Add AccessContext, Principal, and AccessRequest
Add debug information
2013-12-11 16:03:48 -08:00
Raymond Feng 178674ec9a Enhance getRoles() to support smart roles 2013-12-11 09:06:21 -08:00
Raymond Feng 82eeaeee6b Fix the algorithm for Role.isInRole and ACL.checkAccess 2013-12-10 23:33:57 -08:00
Ritchie Martori dfcb43e613 Allow requests without auth tokens 2013-12-10 15:57:55 -08:00
Ritchie Martori e7cc30ee03 Fix base class not being actual base class 2013-12-09 17:11:01 -08:00
Raymond Feng 7f51c28539 Fix the ACL resolution against rules by matching score 2013-12-09 15:26:53 -08:00
Ritchie Martori af2b8dd4ff Merge feature/password-reset 2013-12-06 17:35:14 -08:00
Ritchie Martori 216fee3015 Add access type checking 2013-12-06 17:04:47 -08:00
Ritchie 68ef03e944 SLA-725 support PORT and HOST environment for PaaS support 2013-12-05 20:00:09 -08:00
Raymond Feng 23add99f12 Fix the test assertion as the error message is changed. 2013-12-04 14:41:25 -08:00
Ritchie Martori 2f9403016c Initial auth implementation 2013-11-22 12:26:59 -08:00
Miroslav Bajtos cf541cb828 Add test for findById returning 404
The test verifies the remoting configuration of
loopback-datasource-juggler, ensuring that
`DataAccessObject.findById()` has `rest.before` handler
correctly set up.
2013-11-21 16:23:01 +01:00
Ritchie Martori e92c46a4e4 Add password reset 2013-11-20 14:20:47 -08:00
Raymond Feng 344c74297c Add unauthenticated role 2013-11-20 13:43:02 -08:00
Raymond Feng bee8a3b022 Add checkAccess for subject and token 2013-11-20 13:43:01 -08:00
Raymond Feng 2c7c5fc7ec Start to support smart roles such as owner 2013-11-20 13:43:01 -08:00
Ritchie Martori 3753c15b71 Merge pull request #71 from strongloop/feature/status-middleware
Add status middleware
2013-11-19 13:15:57 -08:00
Ritchie Martori fd7dd7e4a2 Add status middleware 2013-11-19 12:54:30 -08:00
Ritchie Martori 178e5dab30 Remove .attachTo() from tests 2013-11-19 11:02:43 -08:00
Ritchie Martori cb39ae7adb Debugging odd defineFK behavior 2013-11-19 10:29:02 -08:00
Ritchie Martori da0545bed6 Initial auto wiring for model dataSources 2013-11-18 16:13:40 -08:00
Raymond Feng 8381b05da1 Allows LDL level ACLs 2013-11-15 09:41:26 -08:00
Raymond Feng 9bc762c09c Update dependencies 2013-11-14 21:19:57 -08:00
Raymond Feng 8e679d0927 Fix the permission resolution 2013-11-14 21:19:57 -08:00
Raymond Feng 94f12d0fce Fix the permission check 2013-11-14 21:19:57 -08:00
Raymond Feng 660ef89755 Merge ScopeACL into ACL 2013-11-14 21:19:56 -08:00
Raymond Feng 0430cd2ae3 Add tests for isInRole and getRoles 2013-11-14 21:19:56 -08:00
Raymond Feng c3a1a85159 Add constants and more tests 2013-11-14 21:19:56 -08:00
Raymond Feng 48a0242711 Define the models/relations for ACL 2013-11-14 21:19:56 -08:00
Raymond Feng 67b934357b Start to build the ACL models 2013-11-14 21:19:56 -08:00
Ritchie Martori 1de2a40e88 Update AccessToken and User relationship
- Add created default
 - Default TTLs for user login access tokens
 - Break out User / AccessToken relationship
2013-11-14 19:41:29 -08:00
Ritchie Martori 1bb95607b9 Update session / token documentation 2013-11-14 15:42:37 -08:00
Ritchie Martori 64d8ff986b Add loopback.token() middleware 2013-11-14 13:01:47 -08:00
Ritchie 77a137eca6 Rename Session => AccessToken 2013-11-14 10:05:13 -08:00
Raymond Feng a00645dd83 Merge pull request #53 from strongloop/apns
Update Application model for the push notification
2013-11-06 11:50:56 -08:00
Ritchie Martori 30df6cb597 Code review fixes based on feedback from https://github.com/strongloop/loopback/pull/57 2013-11-04 14:07:26 -08:00
Ritchie Martori da5cb2c117 Add app.boot() 2013-10-29 14:44:44 -07:00
Ritchie Martori a3f1d8d944 Refactor email model into mail connector 2013-10-14 10:54:55 -07:00
Raymond Feng bfffd839a7 Update Application model for the push notification 2013-10-11 13:56:26 -07:00
Raymond Feng 757803f203 Fix the test as DAO now ignores undefined value for query 2013-10-11 13:40:08 -07:00
Raymond Feng 858ec8714d Fix the id and property access 2013-10-04 15:53:02 -07:00
Raymond Feng 041779ed81 Fix the test case 2013-08-28 10:39:01 -07:00
Raymond Feng e8ac3a960f Update the list of shared methods 2013-08-16 16:39:13 -07:00
Raymond Feng 53c65602d2 Use strong-task-emitter 2013-08-01 11:31:30 -07:00
Ritchie Martori 423b4f2157 Fix login query 2013-07-28 14:33:13 -07:00
Ritchie Martori 7f1e88e816 Implement required and update invlaid id schemas 2013-07-28 13:20:55 -07:00
Ritchie Martori 0f3ad00086 Remove auth middleware and passport until adding in acl and strategies 2013-07-28 10:11:29 -07:00
Ritchie Martori 89f65d792f Clean up log out methods 2013-07-28 10:08:06 -07:00
Ritchie 8a7086be5c Add root true to remote methods 2013-07-24 17:21:15 -07:00
Raymond Feng 89a2a377c4 Fix the test case 2013-07-23 12:59:40 -07:00
Raymond Feng da1cd6739b Add more docs and apis to application model 2013-07-22 11:15:02 -07:00
Raymond Feng 267f94c542 Add a deleteById test 2013-07-22 10:00:07 -07:00
Raymond Feng 836df227c6 Add more functions and tests for Application model 2013-07-18 11:44:25 -07:00
Ritchie a2308cbc1c Merge 0.9 into master 2013-07-17 14:08:14 -07:00
Ritchie Martori 0b5e0d4252 More cleanup for test/README.md 2013-07-16 13:46:33 -07:00
Ritchie Martori 253d42a8e8 Cleanup test markdown 2013-07-16 13:41:17 -07:00
Ritchie Martori cba94a23fc Add memory docs and test 2013-07-16 13:39:03 -07:00
Raymond Feng 1059a7b863 Add renamed files 2013-07-16 11:05:38 -07:00
Raymond Feng 2f773115fe rename asteroid to loopback 2013-07-16 11:02:06 -07:00
Raymond Feng a35d2b7365 rename asteroid to loopback 2013-07-16 10:42:47 -07:00
Ritchie Martori fbf0e35f1d Remove updateAttribute as remote method 2013-07-15 19:45:27 -07:00
Ritchie Martori 49da6f4249 Fix login bug. 2013-07-15 18:22:33 -07:00
Ritchie Martori aa8d1bb853 Added bcrypt for password hashing 2013-07-15 14:07:17 -07:00
Ritchie Martori acfaee2fb0 Remove data argument name from user tests 2013-07-15 10:56:42 -07:00
Ritchie Martori d9b5daba0e Validate uniqueness and format of User email. 2013-07-12 17:03:13 -07:00
Ritchie Martori 16617a3737 Add user.logout() sugar method and update logout docs 2013-07-12 16:10:15 -07:00
Ritchie Martori a09b527000 Create 64 byte session ids 2013-07-12 15:47:58 -07:00
Ritchie Martori 9a62c48cfc Tests README 2013-07-12 13:38:52 -07:00
Ritchie Martori 78457fbeaf Updated generated test docs 2013-07-12 12:53:38 -07:00
Ritchie Martori a22cf5f4af Update docs and add asteroid.memory() sugar api
- added asteroid.memory()
 - added default session and email models to user model
2013-07-12 12:40:36 -07:00
Ritchie Martori fc0777de08 Add basic email verification 2013-07-03 13:40:14 -07:00
Ritchie Martori 8387a68b85 Initial users 2013-07-03 13:40:13 -07:00
Ritchie Martori 1abe583029 Add initial User model 2013-07-03 13:40:13 -07:00
Ritchie Martori 90d990b798 Remove app.modelBuilder() 2013-07-03 13:40:13 -07:00
Ritchie Martori 7b8e94019f Add normalized properties to Models 2013-07-03 13:40:12 -07:00
Ritchie Martori 6f6e0fe353 Add normalized properties to Models 2013-06-27 18:26:44 -07:00
Ritchie Martori b00248cc18 Add user model docs. 2013-06-25 20:29:58 -07:00
Ritchie Martori 9dab0896f0 Add geo point tests 2013-06-24 16:30:09 -07:00
Ritchie Martori 88f634df38 model.find => model.findById, model.all => model.find 2013-06-24 12:26:46 -07:00
Ritchie Martori 2669ed1c23 Update tests 2013-06-21 16:48:53 -07:00
Ritchie Martori cc8d748a47 Add test doc file. 2013-06-21 16:41:33 -07:00
Ritchie db7a86321b Remove discover sugar apis 2013-06-20 14:17:38 -07:00
Ritchie Martori 166451443a Updated docs, updated tests 2013-06-12 15:44:38 -07:00
Ritchie 5df77ac4d0 More tests 2013-06-11 11:07:49 -07:00
Ritchie Martori 935cd5cc77 Doc updates, tests 2013-06-11 09:01:44 -07:00
Ritchie Martori 1e1a227f86 Adding new data source 2013-06-07 17:37:30 -07:00
Ritchie Martori bcef4c88cf Remove node modules from ignore, removie configure middleware 2013-06-07 13:12:46 -07:00
Ritchie Martori 7d0858b22e Remove node modules, add initial tests 2013-06-07 12:57:51 -07:00
Ritchie 22a55be841 Documentation updates 2013-06-05 17:11:21 -07:00
Ritchie Martori ac656b51e8 Remove aux test 2013-05-17 17:56:11 -07:00
Ritchie Martori 2a0f68e434 init 2013-04-09 09:02:36 -07:00