- Permissions schema

- Permissions call
This commit is contained in:
Diego Mello 2017-11-20 08:39:42 -02:00
parent eab74038cb
commit 8fd561c37a
2 changed files with 43 additions and 1 deletions

View File

@ -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;

View File

@ -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(() => {