Skip to content

Commit 060e528

Browse files
authored
Merge 746658a into e7c7f44
2 parents e7c7f44 + 746658a commit 060e528

File tree

2 files changed

+29
-1
lines changed

2 files changed

+29
-1
lines changed

spec/schemas.spec.js

+28
Original file line numberDiff line numberDiff line change
@@ -1779,6 +1779,34 @@ describe('schemas', () => {
17791779
});
17801780
});
17811781

1782+
describe('Nested documents', () => {
1783+
beforeAll(async () => {
1784+
const testSchema = new Parse.Schema('test_7371');
1785+
testSchema.setCLP({
1786+
create: { ['*']: true },
1787+
update: { ['*']: true },
1788+
addField: {},
1789+
});
1790+
testSchema.addObject('a');
1791+
await testSchema.save();
1792+
});
1793+
1794+
it('addField permission not required for adding a nested property', async () => {
1795+
const obj = new Parse.Object('test_7371');
1796+
obj.set('a', {});
1797+
await obj.save();
1798+
obj.set('a.b', 2);
1799+
await obj.save();
1800+
});
1801+
it('addField permission not required for modifying a nested property', async () => {
1802+
const obj = new Parse.Object('test_7371');
1803+
obj.set('a', { b: 1 });
1804+
await obj.save();
1805+
obj.set('a.b', 2);
1806+
await obj.save();
1807+
});
1808+
});
1809+
17821810
it('should aceept class-level permission with userid of any length', async done => {
17831811
await global.reconfigureServer({
17841812
customIdSize: 11,

src/Controllers/DatabaseController.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -894,7 +894,7 @@ class DatabaseController {
894894
if (object[field] && object[field].__op && object[field].__op === 'Delete') {
895895
return false;
896896
}
897-
return schemaFields.indexOf(field) < 0;
897+
return schemaFields.indexOf(getRootFieldName(field)) < 0;
898898
});
899899
if (newKeys.length > 0) {
900900
// adds a marker that new field is being adding during update

0 commit comments

Comments
 (0)