Skip to content

Commit 80103a3

Browse files
committed
Add enforceMasterKeyAccess middleware.
1 parent e6ef0ae commit 80103a3

File tree

2 files changed

+10
-9
lines changed

2 files changed

+10
-9
lines changed

src/Controllers/FilesController.js

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -76,13 +76,6 @@ export class FilesController {
7676

7777
deleteHandler() {
7878
return (req, res, next) => {
79-
// enforce use of master key for file deletions
80-
if(!req.auth.isMaster){
81-
next(new Parse.Error(Parse.Error.OPERATION_FORBIDDEN,
82-
'Master key required for file deletion.'));
83-
return;
84-
}
85-
8679
this._filesAdapter.deleteFile(req.config, req.params.filename).then(() => {
8780
res.status(200);
8881
// TODO: return useful JSON here?
@@ -142,6 +135,7 @@ export class FilesController {
142135
router.delete('/files/:filename',
143136
Middlewares.allowCrossDomain,
144137
Middlewares.handleParseHeaders,
138+
Middlewares.enforceMasterKeyAccess,
145139
this.deleteHandler()
146140
);
147141

src/middlewares.js

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -178,15 +178,22 @@ var handleParseErrors = function(err, req, res, next) {
178178
}
179179
};
180180

181+
function enforceMasterKeyAccess(req, res, next) {
182+
if (!req.auth.isMaster) {
183+
next(new Parse.Error(Parse.Error.OPERATION_FORBIDDEN, 'Master key is required for this operation.'));
184+
}
185+
next();
186+
}
187+
181188
function invalidRequest(req, res) {
182189
res.status(403);
183190
res.end('{"error":"unauthorized"}');
184191
}
185192

186-
187193
module.exports = {
188194
allowCrossDomain: allowCrossDomain,
189195
allowMethodOverride: allowMethodOverride,
190196
handleParseErrors: handleParseErrors,
191-
handleParseHeaders: handleParseHeaders
197+
handleParseHeaders: handleParseHeaders,
198+
enforceMasterKeyAccess: enforceMasterKeyAccess
192199
};

0 commit comments

Comments
 (0)