Skip to content

Commit 89df778

Browse files
committed
Merge pull request #1357 from ParsePlatform/schema-defaults
🚧 Inject the default schemas properties when loading it
2 parents acc23d0 + 3a28352 commit 89df778

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed

spec/schemas.spec.js

+15
Original file line numberDiff line numberDiff line change
@@ -1511,5 +1511,20 @@ describe('schemas', () => {
15111511
fail('should not fail');
15121512
done();
15131513
});
1514+
});
1515+
1516+
it('can login when addFields is false (issue #1355)', (done) => {
1517+
setPermissionsOnClass('_User', {
1518+
'addField': {}
1519+
}).then(() => {
1520+
return Parse.User.signUp('foo', 'bar');
1521+
}).then((user) => {
1522+
expect(user.getUsername()).toBe('foo');
1523+
done()
1524+
}, (err) => {
1525+
console.error(err);
1526+
fail('should create user');
1527+
done();
1528+
})
15141529
})
15151530
});

src/Schema.js

+10
Original file line numberDiff line numberDiff line change
@@ -263,6 +263,16 @@ class Schema {
263263
}
264264
});
265265
if (className) {
266+
// merge with the default schema
267+
let defaultClassData = Object.assign({}, defaultColumns._Default, defaultColumns[className]);
268+
defaultClassData = Object.keys(defaultClassData).reduce((memo, key) => {
269+
let type = schemaAPITypeToMongoFieldType(defaultClassData[key]).result;
270+
if (type) {
271+
memo[key] = type;
272+
}
273+
return memo;
274+
}, {});
275+
classData = Object.assign({}, defaultClassData, classData);
266276
this.data[className] = classData;
267277
if (permsData) {
268278
this.perms[className] = permsData;

0 commit comments

Comments
 (0)