tmp
This commit is contained in:
parent
5ad676f7dc
commit
908c389155
|
@ -25,6 +25,14 @@ export function setAllSettings(settings) {
|
|||
payload: settings
|
||||
};
|
||||
}
|
||||
|
||||
export function setAllPermissions(permissions) {
|
||||
return {
|
||||
type: types.SET_ALL_PERMISSIONS,
|
||||
payload: permissions
|
||||
};
|
||||
}
|
||||
|
||||
export function login() {
|
||||
return {
|
||||
type: 'LOGIN'
|
||||
|
|
|
@ -1,2 +1,3 @@
|
|||
export const SET_CURRENT_SERVER = 'SET_CURRENT_SERVER';
|
||||
export const SET_ALL_SETTINGS = 'SET_ALL_SETTINGS';
|
||||
export const SET_ALL_PERMISSIONS = 'SET_ALL_PERMISSIONS';
|
||||
|
|
|
@ -24,6 +24,24 @@ 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' },
|
||||
_updatedAt: { type: 'date', optional: true }
|
||||
}
|
||||
};
|
||||
|
||||
const roomsSchema = {
|
||||
name: 'rooms',
|
||||
primaryKey: '_id',
|
||||
|
@ -130,7 +148,9 @@ const realm = new Realm({
|
|||
usersSchema,
|
||||
roomsSchema,
|
||||
attachment,
|
||||
messagesEditedBySchema
|
||||
messagesEditedBySchema,
|
||||
permissionsSchema,
|
||||
permissionsRolesSchema
|
||||
]
|
||||
});
|
||||
export default realm;
|
||||
|
|
|
@ -103,6 +103,7 @@ const RocketChat = {
|
|||
}
|
||||
});
|
||||
RocketChat.getSettings();
|
||||
RocketChat.getPermissions();
|
||||
});
|
||||
})
|
||||
.catch(e => console.error(e));
|
||||
|
@ -429,6 +430,44 @@ const RocketChat = {
|
|||
});
|
||||
},
|
||||
_filterSettings: settings => settings.filter(setting => settingsType[setting.type] && setting.value),
|
||||
async getPermissions() {
|
||||
// const permissions = await call('permissions/get');
|
||||
// console.log(permissions)
|
||||
// reduxStore.dispatch(actions.setAllPermissions(RocketChat.parsePermissions(permissions)));
|
||||
|
||||
const temp = realm.objects('permissions').sorted('_updatedAt', true)[0];
|
||||
const permissions = await call('permissions/get');
|
||||
const preparedPermissions = RocketChat._preparePermissions(permissions);
|
||||
console.log(preparedPermissions)
|
||||
// realm.write(() => {
|
||||
// permissions.forEach(permission => realm.create('permissions', permission, true));
|
||||
// });
|
||||
reduxStore.dispatch(actions.setAllPermissions(RocketChat.parsePermissions(permissions)));
|
||||
// const filteredPermissions = RocketChat._preparePermissions(RocketChat._filterPermissions(permissions));
|
||||
|
||||
// const temp = realm.objects('permissions').sorted('_updatedAt', true)[0];
|
||||
// const result = await (!temp ? call('public-permissions/get') : call('public-permissions/get', new Date(temp._updatedAt)));
|
||||
// const permissions = temp ? result.update : result;
|
||||
// const filteredPermissions = RocketChat._preparePermissions(RocketChat._filterPermissions(permissions));
|
||||
// realm.write(() => {
|
||||
// filteredPermissions.forEach(permission => realm.create('permissions', permission, true));
|
||||
// });
|
||||
// reduxStore.dispatch(actions.setAllPermissions(RocketChat.parsePermissions(filteredPermissions)));
|
||||
},
|
||||
parsePermissions: permissions => permissions.reduce((ret, item) => {
|
||||
ret[item._id] = item.roles;
|
||||
return ret;
|
||||
}, {}),
|
||||
_preparePermissions(permissions) {
|
||||
const tmpPermissions = [...permissions];
|
||||
tmpPermissions.forEach((permission) => {
|
||||
permission.roles = permission.roles.map((role) => {
|
||||
role = { value: role };
|
||||
return role;
|
||||
});
|
||||
});
|
||||
return tmpPermissions;
|
||||
},
|
||||
deleteMessage(message) {
|
||||
return call('deleteMessage', { _id: message._id });
|
||||
},
|
||||
|
|
|
@ -7,8 +7,8 @@ import server from './server';
|
|||
import navigator from './navigator';
|
||||
import createChannel from './createChannel';
|
||||
import app from './app';
|
||||
|
||||
import permissions from './permissions';
|
||||
|
||||
export default combineReducers({
|
||||
settings, login, meteor, messages, server, navigator, createChannel, app
|
||||
settings, login, meteor, messages, server, navigator, createChannel, app, permissions
|
||||
});
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
import * as types from '../constants/types';
|
||||
|
||||
const initialState = {
|
||||
permissions: {}
|
||||
};
|
||||
|
||||
|
||||
export default function permissions(state = initialState.permissions, action) {
|
||||
if (action.type === types.SET_ALL_PERMISSIONS) {
|
||||
return {
|
||||
...state,
|
||||
...action.payload
|
||||
};
|
||||
}
|
||||
|
||||
return state;
|
||||
}
|
Loading…
Reference in New Issue