mirror of
https://github.com/TryGhost/Ghost.git
synced 2024-11-24 06:35:49 +03:00
Handle invalid post ids in editor route
No issue -fail fast if an invalid post id is passed into the editor route to prevent an unnecessary network request for all posts -if post id is valid but post does not exist, transition to Content screen instead of returning an invalid model
This commit is contained in:
parent
4406d350c4
commit
78a7c389b6
@ -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');
|
||||
});
|
||||
}
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user