parent
eab74038cb
commit
8fd561c37a
|
@ -22,6 +22,23 @@ const settingsSchema = {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const permissionsRolesSchema = {
|
||||||
|
name: 'permissionsRoles',
|
||||||
|
properties: {
|
||||||
|
value: 'string'
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const permissionsSchema = {
|
||||||
|
name: 'permissions',
|
||||||
|
primaryKey: '_id',
|
||||||
|
properties: {
|
||||||
|
_id: 'string',
|
||||||
|
_server: 'servers',
|
||||||
|
roles: { type: 'list', objectType: 'permissionsRoles' }
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
const roomsSchema = {
|
const roomsSchema = {
|
||||||
name: 'rooms',
|
name: 'rooms',
|
||||||
primaryKey: '_id',
|
primaryKey: '_id',
|
||||||
|
@ -128,7 +145,9 @@ const realm = new Realm({
|
||||||
usersSchema,
|
usersSchema,
|
||||||
roomsSchema,
|
roomsSchema,
|
||||||
attachment,
|
attachment,
|
||||||
messagesEditedBySchema
|
messagesEditedBySchema,
|
||||||
|
permissionsSchema,
|
||||||
|
permissionsRolesSchema
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
export default realm;
|
export default realm;
|
||||||
|
|
|
@ -83,6 +83,29 @@ const RocketChat = {
|
||||||
reduxStore.dispatch(actions.setAllSettings(settings));
|
reduxStore.dispatch(actions.setAllSettings(settings));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Meteor.call('permissions/get', (err, data) => {
|
||||||
|
if (err) {
|
||||||
|
console.error(err);
|
||||||
|
}
|
||||||
|
|
||||||
|
const permissions = {};
|
||||||
|
realm.write(() => {
|
||||||
|
data.forEach((item) => {
|
||||||
|
const permission = {
|
||||||
|
_id: item._id,
|
||||||
|
roles: []
|
||||||
|
};
|
||||||
|
permission._server = { id: reduxStore.getState().server.server };
|
||||||
|
item.roles.forEach((role) => {
|
||||||
|
permission.roles.push({ value: role });
|
||||||
|
});
|
||||||
|
realm.create('permissions', permission, true);
|
||||||
|
permissions[item._id] = permission;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
// reduxStore.dispatch(actions.setAllPermissions(permissions));
|
||||||
|
});
|
||||||
|
|
||||||
Meteor.ddp.on('changed', (ddbMessage) => {
|
Meteor.ddp.on('changed', (ddbMessage) => {
|
||||||
if (ddbMessage.collection === 'stream-room-messages') {
|
if (ddbMessage.collection === 'stream-room-messages') {
|
||||||
realm.write(() => {
|
realm.write(() => {
|
||||||
|
|
Loading…
Reference in New Issue