fix server not being setup prior to rendering server editor

This commit is contained in:
Katalina / stardust 2018-01-17 23:33:51 -06:00
parent 6a4ac388f4
commit b1e043c678
3 changed files with 8 additions and 5 deletions

View file

@ -1,10 +1,11 @@
import { Set } from 'immutable' import { Set } from 'immutable'
import * as UIActions from '../../actions/ui' import * as UIActions from '../../actions/ui'
import { getViewMap } from '../role-picker/actions' import { getViewMap, setup } from '../role-picker/actions'
import uuidv4 from 'uuid/v4' import uuidv4 from 'uuid/v4'
import superagent from 'superagent' import superagent from 'superagent'
export const constructView = id => (dispatch, getState) => { export const constructView = id => async (dispatch, getState) => {
await setup(id)(dispatch)
const server = getState().servers.get(id) const server = getState().servers.get(id)
let { viewMap, hasSafeRoles } = getViewMap(server) let { viewMap, hasSafeRoles } = getViewMap(server)

View file

@ -113,6 +113,11 @@ class RoleEditor extends Component {
render () { render () {
const { server } = this.props const { server } = this.props
if (server == null) {
return null
}
if (server.getIn(['perms', 'canManageRoles']) !== true) { if (server.getIn(['perms', 'canManageRoles']) !== true) {
return <Redirect to={`/s/${server.get('id')}`} /> return <Redirect to={`/s/${server.get('id')}`} />
} }

View file

@ -6,8 +6,6 @@ export const setup = id => async dispatch => {
const rsp = await superagent.get(`/api/server/${id}`) const rsp = await superagent.get(`/api/server/${id}`)
const data = rsp.body const data = rsp.body
console.log(data)
dispatch({ dispatch({
type: Symbol.for('server: set'), type: Symbol.for('server: set'),
data: { data: {
@ -20,7 +18,6 @@ export const setup = id => async dispatch => {
export const getViewMap = server => { export const getViewMap = server => {
const roles = server.get('roles') const roles = server.get('roles')
const categories = server.get('categories') const categories = server.get('categories')
const allRoles = server.get('roles').filter(v => v.get('safe')).map(r => r.get('id')).toSet() const allRoles = server.get('roles').filter(v => v.get('safe')).map(r => r.get('id')).toSet()