pleroma-fe/src/modules/adminSettings.js

49 lines
1.2 KiB
JavaScript
Raw Normal View History

import { set, cloneDeep } from 'lodash'
export const defaultState = {
needsReboot: null,
config: null,
modifiedPaths: null
}
export const newUserFlags = {
...defaultState.flagStorage
}
const serverSideStorage = {
state: {
...cloneDeep(defaultState)
},
mutations: {
updateAdminSettings (state, { config, modifiedPaths }) {
state.config = config
state.modifiedPaths = modifiedPaths
}
},
actions: {
setInstanceAdminSettings ({ state, commit, dispatch }, { backendDbConfig }) {
const config = {}
const modifiedPaths = new Set()
backendDbConfig.configs.forEach(c => {
const path = c.group + '.' + c.key
if (c.db) {
c.db.forEach(x => modifiedPaths.add(path + '.' + x))
}
const convert = (value) => {
if (Array.isArray(value) && value.length > 0 && value[0].tuple) {
return value.reduce((acc, c) => {
return { ...acc, [c.tuple[0]]: convert(c.tuple[1]) }
}, {})
} else {
return value
}
}
set(config, path, convert(c.value))
})
commit('updateAdminSettings', { config, modifiedPaths })
}
}
}
export default serverSideStorage