mirror of
https://github.com/TryGhost/Ghost.git
synced 2024-11-28 14:03:48 +03:00
dbbc4f5fa4
closes https://github.com/TryGhost/Ghost/issues/10629 - the error was occurring due to `session.user` CP being populated with a rejected promise when attempting to access the first route. The CP has no dependent key so any further attempts to access `session.user` would be rejected - marking the CP as "changed" immediately after logging in means that the next request will create a new promise and successfully fetch the user
30 lines
932 B
JavaScript
30 lines
932 B
JavaScript
import RSVP from 'rsvp';
|
|
import SessionService from 'ember-simple-auth/services/session';
|
|
import {computed} from '@ember/object';
|
|
import {inject as service} from '@ember/service';
|
|
|
|
export default SessionService.extend({
|
|
feature: service(),
|
|
dataStore: service('store'), // SessionService.store already exists
|
|
tour: service(),
|
|
|
|
user: computed(function () {
|
|
return this.dataStore.queryRecord('user', {id: 'me'});
|
|
}),
|
|
|
|
authenticate() {
|
|
// ensure any cached this.user value is removed and re-fetched
|
|
this.notifyPropertyChange('user');
|
|
|
|
return this._super(...arguments).then((authResult) => {
|
|
// TODO: remove duplication with application.afterModel
|
|
let preloadPromises = [
|
|
this.feature.fetch(),
|
|
this.tour.fetchViewed()
|
|
];
|
|
|
|
return RSVP.all(preloadPromises).then(() => authResult);
|
|
});
|
|
}
|
|
});
|