Skip to content

Commit f16b971

Browse files
committed
Apply credential stripping to all untransforms for _User
1 parent 686cc4a commit f16b971

File tree

2 files changed

+44
-2
lines changed

2 files changed

+44
-2
lines changed

Diff for: spec/RestQuery.spec.js

+41
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ var rest = require('../src/rest');
77
var querystring = require('querystring');
88
var request = require('request');
99

10+
var DatabaseAdapter = require('../src/DatabaseAdapter');
11+
var database = DatabaseAdapter.getDatabaseConnection('test', 'test_');
12+
1013
var config = new Config('test');
1114
var nobody = auth.nobody(config);
1215

@@ -35,6 +38,44 @@ describe('rest query', () => {
3538
});
3639
});
3740

41+
describe('query for user w/ legacy credentials', () => {
42+
var data = {
43+
username: 'blah',
44+
password: 'pass',
45+
sessionToken: 'abc123',
46+
}
47+
describe('without masterKey', () => {
48+
it('has them stripped from results', (done) => {
49+
database.adaptiveCollection('_User').then((collection) => {
50+
return collection.insertOne(data);
51+
}).then(() => {
52+
return rest.find(config, nobody, '_User')
53+
}).then((result) => {
54+
var user = result.results[0];
55+
expect(user.username).toEqual('blah');
56+
expect(user.sessionToken).toBeUndefined();
57+
expect(user.password).toBeUndefined();
58+
done();
59+
});
60+
});
61+
});
62+
describe('with masterKey', () => {
63+
it('has them stripped from results', (done) => {
64+
database.adaptiveCollection('_User').then((collection) => {
65+
return collection.insertOne(data);
66+
}).then(() => {
67+
return rest.find(config, {isMaster: true}, '_User')
68+
}).then((result) => {
69+
var user = result.results[0];
70+
expect(user.username).toEqual('blah');
71+
expect(user.sessionToken).toBeUndefined();
72+
expect(user.password).toBeUndefined();
73+
done();
74+
});
75+
});
76+
});
77+
});
78+
3879
// Created to test a scenario in AnyPic
3980
it('query with include', (done) => {
4081
var photo = {

Diff for: src/Controllers/DatabaseController.js

+3-2
Original file line numberDiff line numberDiff line change
@@ -119,12 +119,13 @@ DatabaseController.prototype.untransformObject = function(
119119
return object;
120120
}
121121

122+
delete object.authData;
123+
delete object.sessionToken;
124+
122125
if (isMaster || (aclGroup.indexOf(object.objectId) > -1)) {
123126
return object;
124127
}
125128

126-
delete object.authData;
127-
delete object.sessionToken;
128129
return object;
129130
};
130131

0 commit comments

Comments
 (0)