mirror of
https://github.com/TryGhost/Ghost.git
synced 2024-11-25 19:48:50 +03:00
36 lines
1.2 KiB
JavaScript
36 lines
1.2 KiB
JavaScript
|
import Mixin from 'ember-metal/mixin';
|
||
|
import injectService from 'ember-service/inject';
|
||
|
|
||
|
export default Mixin.create({
|
||
|
|
||
|
ajax: injectService(),
|
||
|
ghostPaths: injectService(),
|
||
|
session: injectService(),
|
||
|
|
||
|
routeIfAlreadyAuthenticated: 'posts',
|
||
|
|
||
|
beforeModel() {
|
||
|
let authUrl = this.get('ghostPaths.url').api('authentication', 'setup');
|
||
|
|
||
|
// check the state of the setup process via the API
|
||
|
return this.get('ajax').request(authUrl).then((result) => {
|
||
|
let [setup] = result.setup;
|
||
|
|
||
|
if (setup.status !== true) {
|
||
|
this.transitionTo('setup');
|
||
|
} else {
|
||
|
// NOTE: this is the same as ESA's UnauthenticatedRouteMixin,
|
||
|
// adding that mixin to this and calling _super wasn't calling
|
||
|
// the ESA mixin's beforeModel method
|
||
|
if (this.get('session').get('isAuthenticated')) {
|
||
|
let routeIfAlreadyAuthenticated = this.get('routeIfAlreadyAuthenticated');
|
||
|
|
||
|
return this.transitionTo(routeIfAlreadyAuthenticated);
|
||
|
} else {
|
||
|
return this._super(...arguments);
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
});
|