Automatically add schemas for object level permissions. (#1970)
This commit is contained in:
parent
0d5e4ad5be
commit
a58a984f3f
|
@ -17,6 +17,7 @@
|
|||
|
||||
### Bug fixes
|
||||
* React Native for Android now supports the Android Gradle Plugin 3.0 (#1742).
|
||||
* [Sync] Classes used by the Object-level permission system are now automatically part of the schema for Query-based Realms (#1966).
|
||||
* [Sync] Fixed distinct queries with query-based sync (broken since v2.11.0).
|
||||
|
||||
### Internals
|
||||
|
|
|
@ -543,7 +543,8 @@ const instanceMethods = {
|
|||
sync: {
|
||||
user: this,
|
||||
url: realmUrl,
|
||||
}
|
||||
},
|
||||
schema: [],
|
||||
};
|
||||
|
||||
// Set query-based as the default setting if the user doesn't specified any other behaviour.
|
||||
|
@ -551,6 +552,16 @@ const instanceMethods = {
|
|||
defaultConfig.sync.fullSynchronization = false;
|
||||
}
|
||||
|
||||
// Automatically add Permission classes to the schema if Query-based sync is enabled
|
||||
if (defaultConfig.sync.fullSynchronization === false || (config && config.sync && config.sync.partial === true)) {
|
||||
defaultConfig.schema = [
|
||||
Realm.Permissions.Class,
|
||||
Realm.Permissions.Permission,
|
||||
Realm.Permissions.Role,
|
||||
Realm.Permissions.User,
|
||||
];
|
||||
}
|
||||
|
||||
// Merge default configuration with user provided config. User defined properties should aways win.
|
||||
// Doing the naive merge in JS break objects that are backed by native objects, so these needs to
|
||||
// be merged manually. This is currently only `sync.user`.
|
||||
|
|
|
@ -1036,4 +1036,17 @@ module.exports = {
|
|||
});
|
||||
},
|
||||
|
||||
};
|
||||
testOfflinePermissionSchemas() {
|
||||
if (!isNodeProccess) {
|
||||
return;
|
||||
}
|
||||
|
||||
return Realm.Sync.User.register('http://localhost:9080', uuid(), 'password').then((u) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
let realm = new Realm(u.createConfiguration());
|
||||
TestCase.assertEqual(5, realm.objects(Realm.Permissions.Class.schema.name).length);
|
||||
resolve('Done');
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue