@@ -5,14 +5,7 @@ var express = require('express'),
55 Schema = require ( '../Schema' ) ;
66
77import PromiseRouter from '../PromiseRouter' ;
8-
9- // TODO: refactor in a SchemaController at one point...
10- function masterKeyRequiredResponse ( ) {
11- return Promise . resolve ( {
12- status : 401 ,
13- response : { error : 'master key not specified' } ,
14- } )
15- }
8+ import * as middleware from "../middlewares" ;
169
1710function classNameMismatchResponse ( bodyClass , pathClass ) {
1811 return Promise . resolve ( {
@@ -45,9 +38,6 @@ function mongoSchemaToSchemaAPIResponse(schema) {
4538}
4639
4740function getAllSchemas ( req ) {
48- if ( ! req . auth . isMaster ) {
49- return masterKeyRequiredResponse ( ) ;
50- }
5141 return req . config . database . collection ( '_SCHEMA' )
5242 . then ( coll => coll . find ( { } ) . toArray ( ) )
5343 . then ( schemas => ( { response : {
@@ -56,9 +46,6 @@ function getAllSchemas(req) {
5646}
5747
5848function getOneSchema ( req ) {
59- if ( ! req . auth . isMaster ) {
60- return masterKeyRequiredResponse ( ) ;
61- }
6249 return req . config . database . collection ( '_SCHEMA' )
6350 . then ( coll => coll . findOne ( { '_id' : req . params . className } ) )
6451 . then ( schema => ( { response : mongoSchemaToSchemaAPIResponse ( schema ) } ) )
@@ -72,9 +59,6 @@ function getOneSchema(req) {
7259}
7360
7461function createSchema ( req ) {
75- if ( ! req . auth . isMaster ) {
76- return masterKeyRequiredResponse ( ) ;
77- }
7862 if ( req . params . className && req . body . className ) {
7963 if ( req . params . className != req . body . className ) {
8064 return classNameMismatchResponse ( req . body . className , req . params . className ) ;
@@ -100,10 +84,6 @@ function createSchema(req) {
10084}
10185
10286function modifySchema ( req ) {
103- if ( ! req . auth . isMaster ) {
104- return masterKeyRequiredResponse ( ) ;
105- }
106-
10787 if ( req . body . className && req . body . className != req . params . className ) {
10888 return classNameMismatchResponse ( req . body . className , req . params . className ) ;
10989 }
@@ -168,10 +148,6 @@ var removeJoinTables = (database, mongoSchema) => {
168148} ;
169149
170150function deleteSchema ( req ) {
171- if ( ! req . auth . isMaster ) {
172- return masterKeyRequiredResponse ( ) ;
173- }
174-
175151 if ( ! Schema . classNameIsValid ( req . params . className ) ) {
176152 throw new Parse . Error ( Parse . Error . INVALID_CLASS_NAME , Schema . invalidClassNameMessage ( req . params . className ) ) ;
177153 }
@@ -214,11 +190,11 @@ function deleteSchema(req) {
214190
215191export class SchemasRouter extends PromiseRouter {
216192 mountRoutes ( ) {
217- this . route ( 'GET' , '/schemas' , getAllSchemas ) ;
218- this . route ( 'GET' , '/schemas/:className' , getOneSchema ) ;
219- this . route ( 'POST' , '/schemas' , createSchema ) ;
220- this . route ( 'POST' , '/schemas/:className' , createSchema ) ;
221- this . route ( 'PUT' , '/schemas/:className' , modifySchema ) ;
222- this . route ( 'DELETE' , '/schemas/:className' , deleteSchema ) ;
193+ this . route ( 'GET' , '/schemas' , middleware . promiseEnforceMasterKeyAccess , getAllSchemas ) ;
194+ this . route ( 'GET' , '/schemas/:className' , middleware . promiseEnforceMasterKeyAccess , getOneSchema ) ;
195+ this . route ( 'POST' , '/schemas' , middleware . promiseEnforceMasterKeyAccess , createSchema ) ;
196+ this . route ( 'POST' , '/schemas/:className' , middleware . promiseEnforceMasterKeyAccess , createSchema ) ;
197+ this . route ( 'PUT' , '/schemas/:className' , middleware . promiseEnforceMasterKeyAccess , modifySchema ) ;
198+ this . route ( 'DELETE' , '/schemas/:className' , middleware . promiseEnforceMasterKeyAccess , deleteSchema ) ;
223199 }
224200}
0 commit comments