diff --git a/core/client/routes/editor.js b/core/client/routes/editor.js index c4cb60b4c4..9fec599d82 100644 --- a/core/client/routes/editor.js +++ b/core/client/routes/editor.js @@ -5,16 +5,32 @@ var EditorRoute = AuthenticatedRoute.extend(styleBody, { classNames: ['editor'], model: function (params) { - var post = this.store.getById('post', params.post_id); + var self = this, + post, + postId; + + postId = Number(params.post_id); + + if (!Number.isInteger(postId) || !Number.isFinite(postId) || postId <= 0) { + this.transitionTo('posts.index'); + } + + post = this.store.getById('post', postId); if (post) { return post; } return this.store.filter('post', { status: 'all', staticPages: 'all' }, function (post) { - return post.get('id') === params.post_id; + return post.get('id') === postId; }).then(function (records) { - return records.get('firstObject'); + var post = records.get('firstObject'); + + if (post) { + return post; + } + + return self.transitionTo('posts.index'); }); } });