adds ability to disable anonymous users
This commit is contained in:
@@ -41,7 +41,7 @@ The client keys used with Parse are no longer necessary with parse-server. If y
|
|||||||
* filesAdapter - The default behavior (GridStore) can be changed by creating an adapter class (see [`FilesAdapter.js`](https://github.com/ParsePlatform/parse-server/blob/master/src/Adapters/Files/FilesAdapter.js))
|
* filesAdapter - The default behavior (GridStore) can be changed by creating an adapter class (see [`FilesAdapter.js`](https://github.com/ParsePlatform/parse-server/blob/master/src/Adapters/Files/FilesAdapter.js))
|
||||||
* databaseAdapter (unfinished) - The backing store can be changed by creating an adapter class (see `DatabaseAdapter.js`)
|
* databaseAdapter (unfinished) - The backing store can be changed by creating an adapter class (see `DatabaseAdapter.js`)
|
||||||
* loggerAdapter - The default behavior/transport (File) can be changed by creating an adapter class (see [`LoggerAdapter.js`](https://github.com/ParsePlatform/parse-server/blob/master/src/Adapters/Logger/LoggerAdapter.js))
|
* loggerAdapter - The default behavior/transport (File) can be changed by creating an adapter class (see [`LoggerAdapter.js`](https://github.com/ParsePlatform/parse-server/blob/master/src/Adapters/Logger/LoggerAdapter.js))
|
||||||
|
* enableAnonymousUsers - Defaults to true. Set to false to disable anonymous users.
|
||||||
---
|
---
|
||||||
|
|
||||||
### Usage
|
### Usage
|
||||||
|
|||||||
@@ -100,6 +100,25 @@ describe('rest create', () => {
|
|||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('handles no anonymous users config', (done) => {
|
||||||
|
var NoAnnonConfig = Object.assign({}, config, {enableAnonymousUsers: false});
|
||||||
|
var data1 = {
|
||||||
|
authData: {
|
||||||
|
anonymous: {
|
||||||
|
id: '00000000-0000-0000-0000-000000000001'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
rest.create(NoAnnonConfig, auth.nobody(NoAnnonConfig), '_User', data1).then(() => {
|
||||||
|
fail("Should throw an error");
|
||||||
|
done();
|
||||||
|
}, (err) => {
|
||||||
|
expect(err.code).toEqual(Parse.Error.UNSUPPORTED_SERVICE);
|
||||||
|
expect(err.message).toEqual('This authentication method is unsupported.');
|
||||||
|
done();
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
it('test facebook signup and login', (done) => {
|
it('test facebook signup and login', (done) => {
|
||||||
var data = {
|
var data = {
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ function Config(applicationId, mount) {
|
|||||||
this.restAPIKey = cacheInfo.restAPIKey;
|
this.restAPIKey = cacheInfo.restAPIKey;
|
||||||
this.fileKey = cacheInfo.fileKey;
|
this.fileKey = cacheInfo.fileKey;
|
||||||
this.facebookAppIds = cacheInfo.facebookAppIds;
|
this.facebookAppIds = cacheInfo.facebookAppIds;
|
||||||
|
this.enableAnonymousUsers = cacheInfo.enableAnonymousUsers;
|
||||||
|
|
||||||
this.database = DatabaseAdapter.getDatabaseConnection(applicationId);
|
this.database = DatabaseAdapter.getDatabaseConnection(applicationId);
|
||||||
this.filesController = cacheInfo.filesController;
|
this.filesController = cacheInfo.filesController;
|
||||||
|
|||||||
@@ -150,8 +150,8 @@ RestWrite.prototype.validateAuthData = function() {
|
|||||||
var facebookData = this.data.authData.facebook;
|
var facebookData = this.data.authData.facebook;
|
||||||
var anonData = this.data.authData.anonymous;
|
var anonData = this.data.authData.anonymous;
|
||||||
|
|
||||||
if (anonData === null ||
|
if (this.config.enableAnonymousUsers === true && (anonData === null ||
|
||||||
(anonData && anonData.id)) {
|
(anonData && anonData.id))) {
|
||||||
return this.handleAnonymousAuthData();
|
return this.handleAnonymousAuthData();
|
||||||
} else if (facebookData === null ||
|
} else if (facebookData === null ||
|
||||||
(facebookData && facebookData.id && facebookData.access_token)) {
|
(facebookData && facebookData.id && facebookData.access_token)) {
|
||||||
|
|||||||
@@ -104,7 +104,8 @@ function ParseServer(args) {
|
|||||||
restAPIKey: args.restAPIKey || '',
|
restAPIKey: args.restAPIKey || '',
|
||||||
fileKey: args.fileKey || 'invalid-file-key',
|
fileKey: args.fileKey || 'invalid-file-key',
|
||||||
facebookAppIds: args.facebookAppIds || [],
|
facebookAppIds: args.facebookAppIds || [],
|
||||||
filesController: filesController
|
filesController: filesController,
|
||||||
|
enableAnonymousUsers: args.enableAnonymousUsers || true
|
||||||
};
|
};
|
||||||
|
|
||||||
// To maintain compatibility. TODO: Remove in v2.1
|
// To maintain compatibility. TODO: Remove in v2.1
|
||||||
|
|||||||
Reference in New Issue
Block a user