Get ParseConfig parameters with Master Key (#5954)
* added saving, retrieving * added tests * fixed typo * added masterKeyOnly to schema controller
This commit is contained in:
committed by
Antonio Davi Macedo Coelho de Castro
parent
422f222204
commit
89e8868a85
@@ -131,6 +131,7 @@ const defaultColumns: { [string]: SchemaFields } = Object.freeze({
|
||||
_GlobalConfig: {
|
||||
objectId: { type: 'String' },
|
||||
params: { type: 'Object' },
|
||||
masterKeyOnly: { type: 'Object' },
|
||||
},
|
||||
_GraphQLConfig: {
|
||||
objectId: { type: 'String' },
|
||||
|
||||
@@ -13,7 +13,20 @@ export class GlobalConfigRouter extends PromiseRouter {
|
||||
return { response: { params: {} } };
|
||||
}
|
||||
const globalConfig = results[0];
|
||||
return { response: { params: globalConfig.params } };
|
||||
if (!req.auth.isMaster && globalConfig.masterKeyOnly !== undefined) {
|
||||
for (const param in globalConfig.params) {
|
||||
if (globalConfig.masterKeyOnly[param]) {
|
||||
delete globalConfig.params[param];
|
||||
delete globalConfig.masterKeyOnly[param];
|
||||
}
|
||||
}
|
||||
}
|
||||
return {
|
||||
response: {
|
||||
params: globalConfig.params,
|
||||
masterKeyOnly: globalConfig.masterKeyOnly,
|
||||
},
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
@@ -25,9 +38,11 @@ export class GlobalConfigRouter extends PromiseRouter {
|
||||
);
|
||||
}
|
||||
const params = req.body.params;
|
||||
const masterKeyOnly = req.body.masterKeyOnly || {};
|
||||
// Transform in dot notation to make sure it works
|
||||
const update = Object.keys(params).reduce((acc, key) => {
|
||||
acc[`params.${key}`] = params[key];
|
||||
acc[`masterKeyOnly.${key}`] = masterKeyOnly[key] || false;
|
||||
return acc;
|
||||
}, {});
|
||||
return req.config.database
|
||||
|
||||
Reference in New Issue
Block a user