mirror of
https://github.com/TryGhost/Ghost.git
synced 2025-01-13 22:41:32 -05:00
f02c2acd71
* Ensures that posts listing only shows posts that the current user authored, if they only have the Author role. * Do not transition into the posts.post route if the current user is not the author (but has the Author role). This is needed because the API server will always return the post (regardless of the current user).
43 lines
1.6 KiB
JavaScript
43 lines
1.6 KiB
JavaScript
import ValidationEngine from 'ghost/mixins/validation-engine';
|
|
import boundOneWay from 'ghost/utils/bound-one-way';
|
|
import NProgressSaveMixin from 'ghost/mixins/nprogress-save';
|
|
|
|
var Post = DS.Model.extend(NProgressSaveMixin, ValidationEngine, {
|
|
validationType: 'post',
|
|
|
|
uuid: DS.attr('string'),
|
|
title: DS.attr('string', {defaultValue: ''}),
|
|
slug: DS.attr('string'),
|
|
markdown: DS.attr('string', {defaultValue: ''}),
|
|
html: DS.attr('string'),
|
|
image: DS.attr('string'),
|
|
featured: DS.attr('boolean', {defaultValue: false}),
|
|
page: DS.attr('boolean', {defaultValue: false}),
|
|
status: DS.attr('string', {defaultValue: 'draft'}),
|
|
language: DS.attr('string', {defaultValue: 'en_US'}),
|
|
meta_title: DS.attr('string'),
|
|
meta_description: DS.attr('string'),
|
|
author: DS.belongsTo('user', { async: true }),
|
|
author_id: DS.attr('number'),
|
|
updated_at: DS.attr('moment-date'),
|
|
published_at: DS.attr('moment-date'),
|
|
published_by: DS.belongsTo('user', { async: true }),
|
|
tags: DS.hasMany('tag', { embedded: 'always' }),
|
|
titleScratch: boundOneWay('title'),
|
|
//## Computed post properties
|
|
isPublished: Ember.computed.equal('status', 'published'),
|
|
isDraft: Ember.computed.equal('status', 'draft'),
|
|
|
|
// remove client-generated tags, which have `id: null`.
|
|
// Ember Data won't recognize/update them automatically
|
|
// when returned from the server with ids.
|
|
updateTags: function () {
|
|
var tags = this.get('tags'),
|
|
oldTags = tags.filterBy('id', null);
|
|
|
|
tags.removeObjects(oldTags);
|
|
oldTags.invoke('deleteRecord');
|
|
}
|
|
});
|
|
|
|
export default Post;
|